我想构建 pyobjc-7.3,因为它修复了 send2trash。BigSur 20.5.0 上的经典建筑是海峡前进的。
cd pyobjc-7.3/pyobjc-framework-Cocoa
python3 setup.py build
虽然一旦我在 nix-shell 中运行相同的构建,魔法就会发生。
nix-shell -p pkgs.python39Packages.setuptools
python3 setup.py build
clang-7:错误:编译期间未使用的参数:'-fno-strict-overflow' [-Werror,-Wunused-command-lin\ e-argument]
好的。没什么大不了。让我们禁用警告。
CFLAGS="-Wno-unused-argument" python3 setup.py build
什么?现在clang就像一只瞎了眼的小猫。
模块/pyobjc-api.h:19:10:致命错误:找不到“objc/objc.h”文件#include <objc/objc.h>
-isysroot选项并且-I没有效果。
-isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk
我注意到-I在 clang 中添加了很多标志,例如:
-iwithprefix /Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include
它有助于 clang 找到 objc 头文件,尽管这还不是故事的结尾。
模块/pyobjc-api.h:21:9:致命错误:找不到“Foundation/Foundation.h”文件
怎么来的?!哦,还有另一个特殊类型的头文件 - 框架。车轮改造...
叮当,换个说法
-iframeworkwithsysroot /System/Library/Frameworks
在这里,我遇到了大量的类型错误,我想不出下一步该尝试什么:
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSString.h:138:1:错误:函数不能返回函数类型'NSComparisonResult'(又名'int(诠释)')
- (NSComparisonResult)比较:(NSString *)字符串选项:(NSStringCompareOptions)掩码范围:(NSR ...