【发布时间】:2011-11-09 10:41:08
【问题描述】:
我在 C++“静态库”项目中有一个函数 extern "C" int ping(void)。现在,我想编写一个简单的 Hello-World C 程序,它会调用这个函数 int x = ping();。
我使用g++ / gcc,但我无法将C 可执行文件与C++ 共享库链接。请问,怎么可能做到这一点?您能否提供准确的gcc 命令?
编辑:
g++ -c -static liba.cpp
ar rcs liba.a liba.o
gcc -o x main.o -L. -la
然后得到:
./liba.a(liba.o):(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld 返回 1 个退出状态
【问题讨论】:
-
静态库文件的名称是什么?它的形式是“lib
.a”吗?如果是,您应该能够使用编译器标志“-L -l ” -
我得到:./liba.a(liba.o):(.eh_frame+0x12): undefined reference to `__gxx_personality_v0' collect2: ld returned 1 exit status