我正在尝试编译一些代码,这些代码使用在名为 staticlib.a 的静态库中实现的函数。我还有一个名为 staticlib.h 的 header ,其中包含该函数的声明。我的 main,包含在包含 staticlib.h 的 main.c 文件中,只调用该函数而不调用其他函数。所以我编译 gcc main.c 静态库.a 一切正常。我需要 c++ 的一些功能,但是如果我在 main.cpp 中正确更改 main.c 并以相同的方式编译 gcc main.cpp 静态库.a 发生了对我的函数的 undefined reference 。我怎样才能使这个工作?为什么会出现这个问题?我在我访问过的任何网站上都找不到真正的解释...... 感谢您的所有回答。
最佳答案
您必须将库中的函数定义为“C”函数,而不是 C++ 函数 - 在您的 main.cpp 中执行此操作
extern "C"
{
#include "staticlib.h"
}
关于c++ - 在 .cpp 文件上链接静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12957357/