- 论坛徽章:
- 0
|
我们的平台是solaris 10, sparc, 语言是c++,下面是我的操作步骤
1)用Sun C++ 5.9从print.cpp编译出一个libprint.so文件,使用-KPIC选项。
这一步会成功。
2)然后用g++ 3.4.6编译debug.cpp, 使用-fPIC选项, rint.so,生成libdebug.so
这一步也会成功。
3)最后使用g++ 3.4.6编译main.cpp, 链接libdebug.so文件以生成一个可执行文件。
这一步失败。报错形如
CC -G -KPIC -o libprint.so print.cpp
g++ -shared -fPIC -o libdebug.so debug.cpp -lprint -L.
g++ -fPIC main.cpp -ldebug -L.
Undefined first referenced
symbol in file
print(char const*) ./libdebug.so
ld: fatal: Symbol referencing errors. No output written to a.out
collect2: ld returned 1 exit status
我很奇怪这个错误为什么不在第2)步就出现,而是等到生成可执行文件的时候才出现,请问这是为什么?哪位大虾能指点一两下?多谢先! |
|