我正在尝试从C ++代码调用sample_c.c中定义的C函数(带有sample_c.h中的函数声明)。我在sample_c.h中使用这个声明
extern "C" void print_c(void);
和sample_c.c中的这个定义
extern void print_c(void) {....}
并尝试生成我想要与我的cpp代码链接的lib。尝试使用此C代码生成lib时出现错误。
gcc -c sample_c.c
error: expected identifier or ‘(’ before string constant
我无法纠正这个问题。有人可以建议我哪里出错。
答案 0 :(得分:5)
extern "C"
在C中无效。要编写可用于C和C ++的标头,必须确保在编译为C时<{1}}不可见:
extern "C"