从C文件创建库时出错 我试图调用C++中的SabPulsC.C中定义的C函数(SAMPARY.C中的函数声明)。我在示例c.h中使用此声明 extern "C" void print_c(void);

从C文件创建库时出错 我试图调用C++中的SabPulsC.C中定义的C函数(SAMPARY.C中的函数声明)。我在示例c.h中使用此声明 extern "C" void print_c(void);,c++,c,C++,C,这个定义在样本c.c extern void print_c(void) {....} 并尝试生成我想与我的cpp代码链接的库。我在尝试用这个C代码生成lib时出错 gcc -c sample_c.c error: expected identifier or ‘(’ before string constant 我无法纠正这一点。有人能指出我错在哪里吗?< /P> < P> 外“C”在C.中写一个可以用于C和C++的头都是无效的,你必须确保编译为C:时,外部“C”是不可见的。 #ifdef

这个定义在样本c.c

extern void print_c(void) {....}
并尝试生成我想与我的cpp代码链接的库。我在尝试用这个C代码生成lib时出错

gcc -c sample_c.c
error: expected identifier or ‘(’ before string constant
我无法纠正这一点。有人能指出我错在哪里吗?< /P> < P> <代码>外“C”<代码>在C.中写一个可以用于C和C++的头都是无效的,你必须确保编译为C:

时,<代码>外部“C”<代码>是不可见的。
#ifdef __cplusplus
extern "C"
#endif
void print_c(void);
<>代码>外部“C”<代码>在C.中不适用于编写一个可以同时用于C和C++的报头,当编译为C:

时,必须确保<代码>外部“C”<代码>不可见。
#ifdef __cplusplus
extern "C"
#endif
void print_c(void);
可能是同时使用
c
c++
标记时唯一正确的问题。可能是同时使用
c
c++
标记时唯一正确的问题。