c++ - 在 .cpp 文件上链接静态库

标签 c++ c gcc static-libraries .a

我正在尝试编译一些代码,这些代码使用在名为 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/

相关文章:

android - 如何在 C (Linux) 的 while 循环中准确 sleep ?

c - gcc 和 arm-linux-gcc 之间的关系是什么

用 gcc 编译 .c

c++ - 有没有办法不用/UNICODE编译就可以使用MFC的CEdit的函数 "ShowBalloonTip"?

c++ - 为链表返回正确类型的迭代器

c++ - Cuda 全局 __device__ 变量自动初始化

c++ - 如何在 Debian 上获得 GCC/++4.6 或更新版本

c++ - C++ 中的通用 block 等价物

c++ - 如何在 C/C++ 中读取未知维度的数据文件

c - 为什么我运行这个 C 代码时 CPU 核心使用率有一个开关?