在编写一个C++项目的时候,使用cmake管理工程,成功链接一个静态库,但是在编译时仍然出现undefined reference to 的错误。
最终发现问题是由于c和c++混编导致的。
解决方案:
由于我链接的库是使用c语言编写,所以需要在include头文件时加上
#ifdef __cplusplus
extern "C"
{
#endif
#include "XXX.h"
#ifdef __cplusplus
}
#endif
本文介绍了解决C++项目中使用C语言编写的静态库导致的undefined reference错误的方法。通过正确地包含C语言头文件并使用extern C声明,确保C++编译器能够正确地链接C代码。
在编写一个C++项目的时候,使用cmake管理工程,成功链接一个静态库,但是在编译时仍然出现undefined reference to 的错误。
最终发现问题是由于c和c++混编导致的。
解决方案:
由于我链接的库是使用c语言编写,所以需要在include头文件时加上
#ifdef __cplusplus
extern "C"
{
#endif
#include "XXX.h"
#ifdef __cplusplus
}
#endif
1012
2904