I was wondering if anyone knew how to switch between the 6.0 libraries (GNU,
I believe) and the 6.1 Dinkum libraries. I am a commercial developer
targeting an application for QNX using the Empress relational database. The
problem is, I have been experiencing problems with the serial card drivers
and I was told to upgrade to 6.1 by QNX. However, after upgrading, I was no
longer able to compile my programs as the Empress libraries were compiled on
the 6.0 platform and they do not distribute the source. Now, I contacted
Empress and they told me that they would be producing a new release on QNX
6.1 within the next few months. I can’t wait that long. Either I have to
fall back to 6.0C or I have to figure out a way to revert back to the GNU
libraries on 6.1.
Initially, when I compile, I get the following unresolved references:
/home/empress/Empress/v8.60.beta/shlib/libmscfg.so: undefined reference to
j1' /home/empress/Empress/v8.60.beta/shlib/libmscfg.so: undefined reference to
y0’
/home/empress/Empress/v8.60.beta/shlib/libmscfg.so: undefined reference to
yn' /home/empress/Empress/v8.60.beta/shlib/libms.so: undefined reference to
_multi_threaded’
/home/empress/Empress/v8.60.beta/shlib/libmscfg.so: undefined reference to
jn' /home/empress/Empress/v8.60.beta/shlib/libmscfg.so: undefined reference to
j0’
/home/empress/Empress/v8.60.beta/shlib/libmscfg.so: undefined reference to
`y1’
I was informed that the `_multi_threaded’ reference is in libc.so.1, as
opposed to libc.so.2 which is automatically linked in from the command line.
Being one never afraid to use a sledgehammer to fix a problem, I took the
brute force method and executed the following commands in an attempt to
unlink the Dinkum libraries and revert to the GNU libraries:
cd \lib
unlink libasound.so
ln -sf libasound.so.1 libasound.so
unlink libc.so
ln -sf libc.so.1 libc.so
unlink libcam.so
ln -sf libcam.so.1 libcam.so
unlink libm.so
ln -sf libm.so.1 libm.so
unlink libsocket.so
ln -sf libsocket.so.1 libsocket.so
Nothing really changed, I still had the unresolved references. Next, I read
on QNXstart.com (a really good source of information besides this
newsgroup), that some of the unresolved references are math functions, which
are located in the bessel library. So I added “-lbessel” to my linker
command and now I get the following unresolved references:
/x86/lib/libbessel.so: undefined reference to _FLog' /x86/lib/libbessel.so: undefined reference to
sqrtf’
/x86/lib/libbessel.so: undefined reference to _FSin' /home/empress/shlib/libms.so: undefined reference to
_multi_threaded’
Can anyone help?
Randy Aeberhardt
<raeberhardt@tantalus-systems.com>
<www.tantalus-systems.com>