使用配置标志构建Mono后
--build=x86_64-apple-darwin --host=x86-apple-darwin --target=armv7-apple-darwin --enable-llvm --without-mcs-docs
并试图AOT一个小的虚拟.NET程序集,Mono抱怨说它“无法在64位平台上交叉编译为32位体系结构”,即使我已经明确指定了x86的加拿大交叉编译作为主持人。尝试通过添加诸如CFLAGS=-m32
之类的标志来变得更加明确,这会导致奇怪的体系结构错误(某些目标文件最终不会成为x86并最终导致体系结构不匹配)。每次尝试后,我都会进行完整的git clean -dfx
处理,因此当使用其他配置重建Mono时,工作树应该非常干净。
那么,在这种情况下,有什么可能阻止32位二进制文件在我的64位系统上构建的呢?为什么是加拿大交叉编译,为什么还要这样做呢?
顺便说一句,我正在使用Clang,试图构建针对iOS的Mono安装。我已经知道Xamarin之类的东西,但是我特别想自己创建Mono以便进行实验。