Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何制作在Mac OS X 10.5和10.6上运行的fortran可执行文件_Macos_Fortran_Gfortran - Fatal编程技术网

Macos 如何制作在Mac OS X 10.5和10.6上运行的fortran可执行文件

Macos 如何制作在Mac OS X 10.5和10.6上运行的fortran可执行文件,macos,fortran,gfortran,Macos,Fortran,Gfortran,我想用gfortran编译一个fortran代码,这样它就可以在macosx10.5和10.6上运行。有办法做到这一点吗?我尝试在10.6上编译,在10.5上运行可执行文件时收到以下消息: dyld:未知的必需加载命令0x80000022 跟踪/BPT陷阱您使用的是哪一版本的10.5?根据(0x22),是在10.5.6中添加的动态负载函数。您可以尝试升级到>10.5.6,看看问题是否仍然存在 你的gfortran是从哪里来的?在numpy社区中,强烈建议使用中的版本,通常使用中的版本。对于10.

我想用gfortran编译一个fortran代码,这样它就可以在macosx10.5和10.6上运行。有办法做到这一点吗?我尝试在10.6上编译,在10.5上运行可执行文件时收到以下消息:

dyld:未知的必需加载命令0x80000022
跟踪/BPT陷阱

您使用的是哪一版本的10.5?根据(0x22),是在10.5.6中添加的动态负载函数。您可以尝试升级到>10.5.6,看看问题是否仍然存在


你的gfortran是从哪里来的?在numpy社区中,强烈建议使用中的版本,通常使用中的版本。

对于10.5版本的机器,应用程序在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正确构建:

耳醇-l二元

正确的二进制文件不应包含任何“LC\u DYLD\u INFO\u ONLY”加载命令(仅包含“LC\u DYLD\u INFO”命令)


(另请参阅我的博客文章)

我同意避免使用HPC编译器的建议。在/usr/local中放置一个非Apple gcc是危险的,因为它不会为文件指定不同的名称。但是att.com上的gfortran是4.2版,已经过时了。gfortran版本4.3和4.4得到了改进,并具有额外的语言功能。我建议从MacPorts获得gfortran,它包含在gcc43和gcc44包中。更多“前沿”:最新版本的4.5(beta版)可在gfortran Wiki页面上获得。感谢您的提示。没有意识到hpc是要避免的!尝试了att的4.2版本,但出现了以下错误:dyld:Library not loaded:/usr/local/lib/libgfortran.2.dylib经过一番修改后,我发现我可以让我的旧编译器ifort 11.0使用-mmacosx version min=10.4的标志。我用gfortran尝试了同样的方法,但仍然有最初的错误。让gfortran生成可移植可执行文件会很好,但至少我现在可以让ifort来做这件事。使用ifort,选项“-static intel”可能会有所帮助--这将使英特尔库静态链接到可执行文件中,从而消除对英特尔提供的动态库的依赖。但它无法解决非英特尔动态库的任何问题。@M.S.B.-我知道att有点过时,但macports的动态库通常没有特定于苹果的MOD(-arch,-isysroot等)。在任何情况下,雪豹只使用了相同的版本(GCC4.2),所以我认为将其称为过时有点强——在苹果世界中,事情发展得比较慢;)gfortran与gcc的其他部分不同——它是从4.0版开始的。4.3和4.4有许多额外的语言特性,例如非常有用的ISO C绑定。