c++ - 在 Eclipse 中使用 C 库到 C++ 项目

标签 c++ c eclipse

我有一个 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/

相关文章:

c - 如何制作下载其较新副本的二进制文件?(有限条件)

python - 如何以推荐的 Pythonic 方式在 Python for 循环中使用 2 个变量?

Eclipse 与 Java EE (EJB)、ANT 和 Jenkins/Hudson

java - Eclipse:变量的调试和检查导致 com.sun.jdi.ObjectCollectedException

c++ - 是否可以重新初始化 pdf 文件中的图形状态?

c++ - VS 2010,C++中使用 "open"时文件的默认保存路径

c - 错误参数错误,实现数字食谱函数

c# - 我如何将 C# string[] 编码(最好在 SWIG 中)到 C++ string*?

c++ - 为什么 vector<bool>::reference 不返回对 bool 的引用?

java - Eclipse 不显示字符串的引用 ID