gpt4 book ai didi

c++ - 在 GCC 中将 C++ 链接到 C

转载 作者:可可西里 更新时间:2023-11-01 18:26:49 27 4
gpt4 key购买 nike

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

最佳答案

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

关于c++ - 在 GCC 中将 C++ 链接到 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7288404/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com