Archived Forum Post

Index of archived forum posts

Question:

Chilkat C++ shared lib using glibc 2.11 under Debian Squeeze?

Mar 20 '14 at 12:35

I tried to compile code using the libchilkat-9.4.1 and got the following error:

/chilkat-9.4.1-x86_64-linux-gcc/lib/libchilkat-9.4.1.so: undefined reference to __fdelt_chk@GLIBC_2.15'
./chilkat-9.4.1-x86_64-linux-gcc/lib/libchilkat-9.4.1.so: undefined reference tomemcpy@GLIBC_2.14'
collect2: ld returned 1 exit status

Unfortunately Debian Squeeze only support glibc-2.11 and installing glibc-2.14 or 2.15 is not an option for us.

Is it possible to get C++ libraries with glibc-2.11 support?


Answer

There are two solutions:

1) Link your app against the static Chilkat library (libchilkat-9.4.1.a) instead of the dynamic shared library (libchilkat-9.4.1.so). In that case, you'll also need to link with "-lpthread" and "-lresolv".

2) Create a libchilkat-9.4.1.so from the libchilkat-9.4.1.a. This is very easy to do, and the libchilkat-9.4.1.so you create will use whatever version of glibc is on your machine. Here is the command:

g++ -shared -o libchilkat-9.4.1.so -Wl,--whole-archive libchilkat-9.4.1.a 
    -Wl,--no-whole-archive -lpthread -lresolv


Answer

I tried both solutions and both fail to compile, I get the following error when linking against the static Chilkat library:

/root/chilkattest//libchilkat-9.4.1.a(ChilkatSocket.o): In function `ChilkatSocket::waitWriteable2(unsigned int, LogBase&)':
ChilkatSocket.cpp:(.text+0x1a28): undefined reference to `__fdelt_chk'
/root/chilkattest//libchilkat-9.4.1.a(ChilkatSocket.o): In function `ChilkatSocket::waitWriteableMs2(unsigned int, bool, SocketParams&, LogBase&)':
ChilkatSocket.cpp:(.text+0x1b38): undefined reference to `__fdelt_chk'
ChilkatSocket.cpp:(.text+0x1b8c): undefined reference to `__fdelt_chk'
ChilkatSocket.cpp:(.text+0x1c00): undefined reference to `__fdelt_chk'
ChilkatSocket.cpp:(.text+0x1c2d): undefined reference to `__fdelt_chk'
/root/chilkattest//libchilkat-9.4.1.a(ChilkatSocket.o):ChilkatSocket.cpp:(.text+0x1dfa): more undefined references to `__fdelt_chk' follow
collect2: ld returned 1 exit status

Answer

Hello Chilkat community,

i've the same problem as described above. :-) My system is: SUSE Linux Enterprise Server 11 (i586) VERSION = 11 PATCHLEVEL = 3 (32 Bit)

My GNU libc is on Version 2.11.3

My g++ is on Version 4.3.4

i won't upgrade our whole environment.

Is there a solution others than the ones above to compile c++ code linking libchilkat-9.4.1

My compiler error is: undefined reference to `__fdelt_chk@GLIBC_2.15'


Answer

Has nobody an answer?(Chilkat?) Really need to get this running...


Answer

The Chilkat v9.5.0 release is ongoing, and the builds based on glibc v2.11 will be included for both x86 and x86_64. It's just matter of time (sorry for the delay). Chilkat wishes to do this in a comprehensive way so that everything will be available on this older platform (C++, Java, Perl, Python, PHP, Ruby, etc.)


Answer

The 32-bit C/C++ libs for glibc v2.11 are now available: http://www.chilkatsoft.com/chilkat_glibc211.asp

This web page will soon have the complete set of downloads for Java, Perl, Python, PHP, and Ruby that are available for newer Linux systems..


Answer

Hello Chilkat,

thank you for the quick release/response. But i still can't compile chilkat in c++ on my SLES 11 32Bit. Getting the following compiler error:

g++ myprog.cpp -o send -L/usr/local/bin/chilkat/chilkat-9.5.0-x86_64-linux-glibc211-gcc/lib -lchilkat-9.5.0 -lresolv -lpthread

/usr/lib/gcc/i586-suse-linux/4.3/../../../../i586-suse-linux/bin/ld: skipping incompatible /usr/local/bin/chilkat/chilkat-9.5.0-x86_64-linux-glibc211-gcc/lib/libchilkat-9.5.0.so when searching for -lchilkat-9.5.0 /usr/lib/gcc/i586-suse-linux/4.3/../../../../i586-suse-linux/bin/ld: skipping incompatible /usr/local/bin/chilkat/chilkat-9.5.0-x86_64-linux-glibc211-gcc/lib/libchilkat-9.5.0.a when searching for -lchilkat-9.5.0 /usr/lib/gcc/i586-suse-linux/4.3/../../../../i586-suse-linux/bin/ld: cannot find -lchilkat-9.5.0 collect2: ld returned 1 exit status

I've downloaded the 32Bit Version from the related link. I'm wondering that the filename in this link is chilkat-9.5.0-x86_64-linux-glibc211-gcc.tar.gz and not chilkat-9.5.0-x86-linux-gcc.tar.gz like in the installation instruction. Can it be that there is a mistake only hyperlinking the 64Bit version?


Answer

Sorry about that.. the link on the web page was wrong -- both links were pointing to the x64 build. Here are the correct links:

C/C++, 64-bit: http://www.chilkatsoft.com/download/chilkat-9.5.0-x86_64-linux-glibc211-gcc.tar.gz (19-Mar-2014)

C/C++, 32-bit: http://www.chilkatsoft.com/download/chilkat-9.5.0-x86-linux-glibc211-gcc.tar.gz (19-Mar-2014)