RHe*_*ged 9 macos qt gcc openmp
我的问题与这里讨论的问题有关:
试图在Mac OS下运行我的基于Qt的程序,在辅助线程中有一个OpenMP子句时,它崩溃了.浏览完网页后,现在我明白这是由Apple提供的gcc旧版本(4.2)中的一个错误引起的.
然后我从http://hpc.sourceforge.net下载了最新的4.6版gcc 并尝试编译该项目,但是我从g ++编译器得到了以下错误:
无法识别的选项'-arch'无法识别的选项'-Xarch_x86_64'
我了解到这是因为这些是选项,只能由自定义配置的Apple-gcc编译器解释,而不能由标准gcc解释.
任何人都可以帮助我,我可以克服这个问题并配置g ++ 4.6与Qt一起使用以获得无错误的OpenMP支持吗?我承认我在Mac OS平台上是关于编译器和编程的新手,并希望从Visual Studio-Qt环境中移植我的代码.
提前谢谢了!
您可以使用非 Apple gcc v4.6 并为您想要构建的每个架构编译二进制文件(对于 i386 和 x86_64 使用 --target=${ARCH} 应该没问题)。然后,一旦您为每个架构都有了一个二进制文件,就可以像这样使用 lipo :
lipo -create -arch i386 binary_32bit -arch x86_64 binary_64bit -output binary_universal
这将创建一个胖二进制文件(又名通用二进制文件),名为 binary_universal,来自 binary_32bit 和 binary_64bit。
或者您可以使用 clang/llvm 而不是 gcc,它可能不会有您描述的错误,并且(如果通过 Apple 的开发人员工具提供)应该能够直接编译通用二进制文件。