clang - 将静态库与pch文件链接会导致__STATIC__禁用时出错

时间:2015-05-29 04:31:18

标签: objective-c clang static-linking pch

目前我正在尝试将一堆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 ...

具有几乎相同的链接选项并包含目录。

如何处理这个问题,我们将非常感激。

1 个答案:

答案 0 :(得分:0)

使用clang -cc1选项时,PCH头文件的静态编译开关为:

-static-define

(主编译和链接也应该使用--static而不是-static;这是来自gcc文档而不是clang文档)