Hey, i install csql and i can start the server,
but when i use the csql in the console ,there comes the problem:
"symbol lookup error: /usr/lib/libreadline.so.5: undefined symbol: PC"
i've googled but i can not find the solution,
this is a libreadline.so.5.1 in this dir and libreadline.so.5 link to the file
can tell me how can i fix the problem? thx~
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
when i build the src.
i get the error as follows:
g++ -O2 -I/usr/java/jdk1.6.0_18/include -I/usr/java/jdk1.6.0_18/include/linux -o .libs/csql isql.o -lrt -lpthread -lcrypt -lreadline ../../src/storage/.libs/libcsql.so ../../src/sql/.libs/libcsqlsql.so ../../src/sqllog/.libs/libcsqlsqllog.so ../../src/network/.libs/libcsqlnw.so ../../src/adapter/.libs/libcsqlodbcadapter.so ../../src/gateway/.libs/libcsqlgw.so ../../src/cache/.libs/libcacheload.so -lodbc ../../src/sqlnetwork/.libs/libcsqlsqlnw.so -Wl,-rpath -Wl,/home/csql/csql3.0-src/install/lib
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `PC'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tgetflag'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tgetent'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `UP'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tputs'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tgoto'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tgetnum'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `BC'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tgetstr'
how can i fix it?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hey, i install csql and i can start the server,
but when i use the csql in the console ,there comes the problem:
"symbol lookup error: /usr/lib/libreadline.so.5: undefined symbol: PC"
i've googled but i can not find the solution,
this is a libreadline.so.5.1 in this dir and libreadline.so.5 link to the file
can tell me how can i fix the problem? thx~
when i build the src.
i get the error as follows:
g++ -O2 -I/usr/java/jdk1.6.0_18/include -I/usr/java/jdk1.6.0_18/include/linux -o .libs/csql isql.o -lrt -lpthread -lcrypt -lreadline ../../src/storage/.libs/libcsql.so ../../src/sql/.libs/libcsqlsql.so ../../src/sqllog/.libs/libcsqlsqllog.so ../../src/network/.libs/libcsqlnw.so ../../src/adapter/.libs/libcsqlodbcadapter.so ../../src/gateway/.libs/libcsqlgw.so ../../src/cache/.libs/libcacheload.so -lodbc ../../src/sqlnetwork/.libs/libcsqlsqlnw.so -Wl,-rpath -Wl,/home/csql/csql3.0-src/install/lib
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `PC'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tgetflag'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tgetent'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `UP'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tputs'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tgoto'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tgetnum'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `BC'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libreadline.so: undefined reference to `tgetstr'
how can i fix it?
Hi,
Sorry for the late reply.
Try linking -lcurses also with libreadline in src/tools/Makefile.am.full
by changing the line
csql_LDFLAGS = -lrt -lpthread -lcrypt -lodbc -lreadline
to
csql_LDFLAGS = -lrt -lpthread -lcrypt -lodbc -lreadline -lcurses
Let me know if this does not solve the problem.
Cheers
Kishor
If you checkout using CSQL anonymously now you will get the latest CSQL which should build and work correctly for the above problem.
The above problem is because for some of the linux versions libreadline.so is not linked against libcurses.so, as that needs to be done manually.
Its fixed in the latest updated source.