指向的这一行 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); //逻辑型 这样定义编译器既然提示我 警告: 函数声明中出现形参名却未指定类型
我SO明明导出的是 extern "C"啊
还有我 typedef bool (BOOL); //逻辑型 这样定义编译器既然提示我 警告: 函数声明中出现形参名却未指定类型
#5
gcc中没有
extern "C"
你要用
#ifdef __cplusplus括起来
还有c里不支持默认参数(int *pInt_SysError = NULL)
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); //逻辑型 这样定义编译器既然提示我 警告: 函数声明中出现形参名却未指定类型
我SO明明导出的是 extern "C"啊
还有我 typedef bool (BOOL); //逻辑型 这样定义编译器既然提示我 警告: 函数声明中出现形参名却未指定类型
#5
gcc中没有
extern "C"
你要用
#ifdef __cplusplus括起来
还有c里不支持默认参数(int *pInt_SysError = NULL)
extern "C"
你要用
#ifdef __cplusplus括起来
还有c里不支持默认参数(int *pInt_SysError = NULL)