Car*_*s00 7 c c++ linker gcc g++
我extern "C" int ping(void)
在C++"静态库"项目中有一个函数.现在,我想写一个简单的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
Run Code Online (Sandbox Code Playgroud)
得到:
./liba.a(liba.o):(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
Run Code Online (Sandbox Code Playgroud)
collect2:ld返回1退出状态
您可能必须使用g ++作为链接器,而不是gcc.如果ping()
函数使用任何STL或异常,new等,它可能会链接libstdc++
,当您使用g ++作为链接器时,它会自动链接.