我们如何在C++代码中使用任何C库?(我们可以吗?有什么关键吗?)(我使用的是VS10,现在谈论的是libs,如x264和OpenCV)
Aar*_*lla 10
是的,您唯一需要做的就是将#include语句包装起来extern "C"告诉C++编译器使用C语义来实现函数名称,如下所示:
extern "C" {
#include <library.h>
}
Run Code Online (Sandbox Code Playgroud)
在链接期间,只需像任何普通的C++库一样添加库.
您可以使用 C++ 代码中的任何 C 库。这是 C++ 的一大优点:-) 您只需将库头文件包含在 C++ 代码中并链接到您使用的库即可。
任何好的库都会处理 C++ 中的头文件包含。如果不是这种情况,您必须自己进行以下操作:
#ifdef __cplusplus
extern "C" {
#endif
#include "c_header.h"
#ifdef __cplusplus
}
#endif
Run Code Online (Sandbox Code Playgroud)
编辑:正如 Mike 所说,只有当您不知道您的文件是否将与 C 或 C++ 一起使用时才需要 ifdef 部分。例如,如果文件是 API 标头的标头,您可以保留它们。
顺便说一下,opencv 处理 C 或 C++ 的包含(因此 opencv 标头中已经有了 #ifdef 部分)。我不知道x264...
我的2分