我有一个 c 库,通过编译它。它将生成一个 .so 库,该库将在其他 c 项目中使用,其中一个头文件 (x.h) 用于访问您的 .so 文件中的库函数项目。在我的项目中非常简单包括 x.header 并提供 -lx.so 文件和库源目录(.so 文件)的路径以 eclipse C 链接器并编译我的项目。
问题是:我如何在我的 c++ 项目中使用这个 c 库,就像上面在 eclipse 中解释的 c 项目一样?
我在 eclipse 中的 C++ 代码中做了同样的事情,并在我的 C++ 链接器库中添加了 .so 文件,还包括了它的库源路径。此后我添加 header 并尝试使用库函数,但 eclipse 给出错误“未定义的函数引用......”并且无法编译代码。
谢谢。
最佳答案
要在 C++ 中使用任何 C 编译代码,您需要在 header 中用 extern "C"{ ... }
包装它 [如果您计划在 C++ 编译器中编译它,还库内容本身]。
要确保代码可以用 C 和 C++ 编译,您可以使用:
#idfef __cplusplus
extern "C" {
#endif
int func(double d);
...
#idfef __cplusplus
} // end of extern "C"
#endif
这样,extern "C"
只会在使用 C++ 编译器时发生,并且您不会在使用 C 编译器时遇到错误。
关于c++ - 在 Eclipse 中使用 C 库到 C++ 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17004244/