我们如何在C ++代码中使用任何C库? (我们可以吗?有什么关系吗?)(我使用VS10,现在谈论的是像x264和OpenCV这样的库)
答案 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即可使用它。 从那里开始。