我有一个用C语言编写的项目(在Linux上),现在想要使用提供.h和.c源文件的第三方C ++库。
我将.c文件重命名为.cpp,然后将该库包含在C项目中。但是,编译时会出现以下错误:
unknown type name ‘class’
已添加:第三方库在此https://github.com/0xmalloc/c-log
作者说它对C和C ++都很友好
答案 0 :(得分:3)
这里有两个选项:
extern "C" void foo()
例程。但是,当您开始使用C不支持的功能时,您必须为C ++功能提供包装器,以便它可以暴露给应用程序的C部分。这样的程序可以从非常容易到非常复杂。例如,许多现代C / C ++ API也提供Python API。为了做到这一点而不必重写Python中的所有内容,作者创建了将C / C ++功能转换为Python的包装器。根据执行的程度,目标语言的功能(Python,以防我们从C / C ++转到Python)可用于更好的错误处理,类型检查,可读性,本机(到目标语言)数据容器等。 我确实相信该库的作者误导了你,因为该库明显是用于C ++的(标题中的类绝对是尖叫C ++的最明显的东西)。