#define 不被库识别
#define not recognised by library
我正在构建一个库项目和一个测试项目来测试这个库。我希望用户(A.K.A。测试项目)能够为库定义一些东西,但是#define 在我的库中无法识别,只是抛出一个错误。
**我正在将库项目构建为静态库,构建顺序是先构建库,然后构建测试项目,因为项目依赖于库。
在测试项目中,我希望用户能够像这样定义(在包含之前):
#define PUT_DEFINE_HERE
在图书馆,我刚查过:
#ifdef PUT_DEFINE_HERE
//Do some stuff
#endif
如前所述,库看不到用户定义的#define。我尝试了一些构建顺序的东西,但到目前为止没有运气,有什么想法吗?
如果你想让库给"accept"一个用户#define
,检查是否存在PUT_DEFINE_HERE
#ifdef PUT_DEFINE_HERE
//Do some stuff
#endif
必须在顶杆处完成,而且只能在此处
其次,包含库头文件的用户项目必须#define PUT_DEFINE_HERE
在包含库头文件之前
或者,如果这样的设置与库设计不兼容,则必须在编译时添加#define
,例如:
gcc -DPUT_DEFINE_HERE ...
在这种情况下,请务必在相关时使用 -DPUT_DEFINE_HERE
编译每个源代码。
我正在构建一个库项目和一个测试项目来测试这个库。我希望用户(A.K.A。测试项目)能够为库定义一些东西,但是#define 在我的库中无法识别,只是抛出一个错误。
**我正在将库项目构建为静态库,构建顺序是先构建库,然后构建测试项目,因为项目依赖于库。
在测试项目中,我希望用户能够像这样定义(在包含之前):
#define PUT_DEFINE_HERE
在图书馆,我刚查过:
#ifdef PUT_DEFINE_HERE
//Do some stuff
#endif
如前所述,库看不到用户定义的#define。我尝试了一些构建顺序的东西,但到目前为止没有运气,有什么想法吗?
如果你想让库给"accept"一个用户#define
,检查是否存在PUT_DEFINE_HERE
#ifdef PUT_DEFINE_HERE
//Do some stuff
#endif
必须在顶杆处完成,而且只能在此处
其次,包含库头文件的用户项目必须#define PUT_DEFINE_HERE
在包含库头文件之前
或者,如果这样的设置与库设计不兼容,则必须在编译时添加#define
,例如:
gcc -DPUT_DEFINE_HERE ...
在这种情况下,请务必在相关时使用 -DPUT_DEFINE_HERE
编译每个源代码。