我正在尝试编译一些代码,这些代码使用在名为staticlib.a的静态库中实现的功能。我还有一个名为staticlib.h的标头,其中包含该函数的声明。我的main(包含在static.lib中)包含在main.c文件中,仅调用该函数而没有其他调用。所以我用
    gcc main.c staticlib.a
一切正常。我需要c ++的某些功能,但是如果我在main.cpp中正确更改main.c并以相同的方式进行编译
    gcc main.cpp staticlib.a
发生对我的函数的未定义引用。我该如何运作?为什么会出现此问题?在我访问过的任何网站上我都找不到真正的解释...
谢谢您的所有答复。

最佳答案

您必须在库中将函数定义为“ C”函数,而不是C ++函数-在main.cpp中执行此操作

extern "C"
{
#include "staticlib.h"
}

关于c++ - 在.cpp文件上链接静态库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12957357/

10-11 23:07
查看更多