这是什么意思?GCC编译

时间:2022-05-28 02:22:40
错误: expected identifier or ‘(’ before string constant

指向的这一行 extern "C" BOOL GetLastError(int *pInt_SysError = NULL); 这个是我写的一个SO,然后导出的函数。

编译gcc Test.c -L ../e_Core/bin -le_Core

BOOL 是我在其他地方定义的一个int 变量 。最开始已经加载了这个定义的头文件
#include "Comm.h"  BOOL 所在头文件
#include "1.h" GetLastError所在头文件

int main()
{
.....
}

5 个解决方案

#1


so的库文件里面有没有包含Comm.h头文件的?so就有你定义的BOOL类型,所以必需要包含的

#2


包含了的。要不然怎么编译通过呢? 我导出函数头文件1.h也包含了comm头文件。

#3


直接把extern "C" 去了算了

#4


哦,我知道 我应该使用G++编译器。使用GCC编译器就这个样子了 为什么呐?

我SO明明导出的是 extern "C"啊
 还有我 typedef bool (BOOL);                                     //逻辑型 这样定义编译器既然提示我 警告: 函数声明中出现形参名却未指定类型

#5


gcc中没有
extern "C"
你要用
#ifdef __cplusplus括起来

还有c里不支持默认参数(int *pInt_SysError = NULL)

#1


so的库文件里面有没有包含Comm.h头文件的?so就有你定义的BOOL类型,所以必需要包含的

#2


包含了的。要不然怎么编译通过呢? 我导出函数头文件1.h也包含了comm头文件。

#3


直接把extern "C" 去了算了

#4


哦,我知道 我应该使用G++编译器。使用GCC编译器就这个样子了 为什么呐?

我SO明明导出的是 extern "C"啊
 还有我 typedef bool (BOOL);                                     //逻辑型 这样定义编译器既然提示我 警告: 函数声明中出现形参名却未指定类型

#5


gcc中没有
extern "C"
你要用
#ifdef __cplusplus括起来

还有c里不支持默认参数(int *pInt_SysError = NULL)