我们如何在C ++代码中使用任何C库?

时间:2010-07-13 09:28:41

标签: c++ c

我们如何在C ++代码中使用任何C库? (我们可以吗?有什么关系吗?)(我使用VS10,现在谈论的是像x264和OpenCV这样的库)

3 个答案:

答案 0 :(得分:10)

是的,您唯一需要做的就是用#include包装extern "C"语句,告诉C ++编译器使用C语义来表示函数名称等等:

extern "C" {
#include <library.h>
}

在链接期间,只需像任何普通的C ++库一样添加库。

答案 1 :(得分:2)

您可以使用C ++代码中的任何C库。这是C ++很酷的东西:-) 您只需在C ++代码中包含库头文件并链接到您使用的库。

任何好的库都会处理来自C ++的头部包含。如果不是这样的话,你必须自己做以下事情:

#ifdef __cplusplus
extern "C" {
#endif

#include "c_header.h"

#ifdef __cplusplus
}
#endif

编辑:正如迈克所说,只有在你不知道你的文件是否会与C或C ++一起使用时才需要ifdef部分。例如,如果文件是API标头的标头,则可以保留它们。

顺便说一句,opencv通过C或C ++处理包含(因此你已经在opencv头文件中有#ifdef部分)。我不知道x264 ......

my2cents

答案 2 :(得分:0)

据我所知,如果你有想要使用的库,你只需在头文件中添加一个include即可使用它。  从那里开始。

相关问题