- 论坛徽章:
- 0
|
最近在开发的时候使用到 一些开源的 第三方库,其全部是用C写的。
在solaris 平台上编译安装完毕后, 我自己用C++写的程序调用这些库。
在最后链接的时候居然出现 无法链接的情况。
- sol7:$ gcc -o test1 clsQuerier.o testspf.o -lpthread -R/export/nfs/src/libspf/.libs -L/export/nfs/src/libspf/.libs -lspf -lresolv -lsocket -lnsl -lc
- Undefined first referenced
- symbol in file
- SPF_close(peer_info_s *) clsQuerier.o
- SPF_init(char const *, char const *, char const *, char const *, char const *, unsigned int, unsigned int)clsQuerier.o
- ld: fatal: Symbol referencing errors. No output written to test1
- collect2: ld returned 1 exit status
复制代码
并且我已经使用第三方库中自己带的C的测试程序试过。 如果仅仅把它的测试程序(只有一个文件)由 test.c 改为 test.cpp 那么一样会链接失败。
也就是说在一切都一样的情况下,它自己带的测试程序 .c编译后可以链接, .CPP编译后链接失败。
而这个问题在 linux 下我试了几个系统(RED HAT, TURBO)都没问题。
惟独 solaris 出了问题。
我的系统是 solaris 7$:uname -a
SunOS sol7.aaa.com 5.7 Generic sun4u sparc SUNW,Ultra-2
$ gcc -v
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.2/specs
gcc version 2.95.2 19991024 (release)
哪位兄弟碰到过类似情况,请求帮助。谢谢! |
|