我想用gfortran编译一个fortran代码,以便它可以在Mac OS X 10.5和10.6上运行。有没有办法做到这一点?我尝试编译10.6并在10.5上运行可执行文件时收到此消息:
dyld:未知所需的加载命令0x80000022 跟踪/ BPT陷阱
答案 0 :(得分:0)
您使用的是什么版本的10.5?根据{{3}}(0x22)是一个动态加载函数,它被添加到10.5.6。您可以尝试升级到> 10.5.6并查看问题是否仍然存在。
答案 1 :(得分:0)
在10.5 X机器的OS X 10.6机器上错误地构建了应用程序。开发人员可以通过考虑三件事来解决这个问题:
Using the correct compiler parameters:
gcc-4.2 -mmacosx-version-min=10.5 -isysroot /Developer/SDKs/MacOSX10.5.sdk ...
Using the correct linker settings (setting environment variable before link command). This is required, so that the OS X 10.6 linker will not use the loader command 'LC_DYLD_INFO_ONLY' (=0x80000022), because OS X 10.5 does not understand this command:
export MACOSX_DEPLOYMENT_TARGET=10.5
(or setenv MACOSX_DEPLOYMENT_TARGET=10.5)
修复此问题后,可以通过运行'otool'来检查应用程序是否针对OS X 10.5正确构建:
otool -l binary
正确的二进制文件不应包含任何'LC_DYLD_INFO_ONLY'加载命令(仅限'LC_DYLD_INFO'命令)。
(另见我的博客文章http://grauonline.de/wordpress/?p=71)