目前我正在尝试将一堆Objective C模块链接到一个静态库中。
我收到以下错误,无法找到有关如何在构建PCH文件时无法禁用__STATIC__的任何信息。
error: __STATIC__ predefined macro (as opposed to __DYNAMIC__) was disabled in PCH file but is currently enabled
构建PCH文件的命令是:
clang -cc1 -target-cpu x86-64 -g -fno-validate-pch -emit-pch -x objective-c-header afile.pch -o afile.pch.bin -O0 -fmath-errno -fobjc-arc -fobjc-runtime=gnustep -fblocks -pthread -fexceptions -fobjc-exceptions -I...
有很多-I选项来定位头文件。
正在构建库文件:
clang -static -o lib.a -include-pch afile.pch.bin ...
具有几乎相同的链接选项并包含目录。
如何处理这个问题,我们将非常感激。
答案 0 :(得分:0)
使用clang -cc1选项时,PCH头文件的静态编译开关为:
-static-define
(主编译和链接也应该使用--static而不是-static;这是来自gcc文档而不是clang文档)