Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 将应用程序预处理器信息转发到静态库_C_Xcode_C Preprocessor - Fatal编程技术网

C 将应用程序预处理器信息转发到静态库

C 将应用程序预处理器信息转发到静态库,c,xcode,c-preprocessor,C,Xcode,C Preprocessor,我正在测试应用程序中用XCode开发一个静态库。我可以通过将库项目拖到测试应用程序项目中,然后将库添加到测试应用程序项目构建阶段来同时处理测试应用程序和库 有没有办法将预处理器标志从测试应用程序转发到库中?例如,我尝试将标志MY_DEBUG\u flag添加到测试应用程序项目中,然后在我的静态库标题中添加了 #if defined(MY_DEBUG_FLAG) #define MY_DEBUG_FLAG_USED #endif …但是,库中使用的#ifdef MY_DEBUG_FLAG_块将

我正在测试应用程序中用XCode开发一个静态库。我可以通过将库项目拖到测试应用程序项目中,然后将库添加到测试应用程序项目构建阶段来同时处理测试应用程序和库

有没有办法将预处理器标志从测试应用程序转发到库中?例如,我尝试将标志
MY_DEBUG\u flag
添加到测试应用程序项目中,然后在我的静态库标题中添加了

#if defined(MY_DEBUG_FLAG)
#define MY_DEBUG_FLAG_USED
#endif

…但是,库中使用的
#ifdef MY_DEBUG_FLAG_
块将被忽略。我总是可以在库和应用程序项目中添加这个标志,但如果可能的话,这是一个令人讨厌的重复,我希望避免。我希望我的目标是明确的,如果有人有任何建议,我愿意接受一个完全不同的习惯用法

由于按定义进行预处理是在编译之前执行的,因此无法将预处理器标志传递给已编译的库

您可以做的是向库中添加一组变量,它可以在运行时检查这些变量,并将它们设置为应用程序中的相关值,或者让库提供用于启用或禁用其不同方面的函数