在GCC中将C++链接到C

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退出状态

chm*_*eee 9

您可能必须使用g ++作为链接器,而不是gcc.如果ping()函数使用任何STL或异常,new等,它可能会链接libstdc++,当您使用g ++作为链接器时,它会自动链接.