0

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

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

任何有关如何处理此问题的帮助将不胜感激。

4

1 回答 1

0

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

-static-define

(此外,主要编译和链接应该可能使用 --static 而不是 -static;这是来自 gcc 文档而不是 clang 文档)

于 2015-06-08T23:34:54.827 回答