Parallel processing Can';t使用gcc-4.9编译
我最终想用valgrind来找出是什么导致了C程序中偶尔出现的奇怪输出,该程序使用OpenMP并行编程根据实验数据对模型进行了优化 为了避免使用名义上的gcc(ie clang)编译器,我使用brew在运行Yosemite(OS x 10.10.5)的MacPro上安装了gcc-4.9。但是,在尝试使用gcc-4.9编译程序时,无论是否使用-fopenmp,我都会收到大量以下类型的错误消息: /var/folders/qc/1j0gr_l48xnfd9001s6tt6f80000gn/T//ccRxnrnU.s:30597:后缀 或操作数对'movq'无效Parallel processing Can';t使用gcc-4.9编译,parallel-processing,gcc4.9,Parallel Processing,Gcc4.9,我最终想用valgrind来找出是什么导致了C程序中偶尔出现的奇怪输出,该程序使用OpenMP并行编程根据实验数据对模型进行了优化 为了避免使用名义上的gcc(ie clang)编译器,我使用brew在运行Yosemite(OS x 10.10.5)的MacPro上安装了gcc-4.9。但是,在尝试使用gcc-4.9编译程序时,无论是否使用-fopenmp,我都会收到大量以下类型的错误消息: /var/folders/qc/1j0gr_l48xnfd9001s6tt6f80000gn/T//cc
我不知道触发这些错误消息的问题是什么。有人能帮忙吗?以下总结了评论部分的工作,并导致问题得到解决。并非所有步骤都是必要的,但大多数可能都是良好的做法
步骤1-清理 如果您一直在尝试许多不同的、可能不兼容的方法来设置OpenMP,那么首先清理它们可能是一个好主意。比如说:
brew rm --force gcc # or maybe gcc@4.9
步骤2-更新Xcode和命令行工具 如果您在安装Xcode后升级了macOS,则最好更新Xcode及其“命令行工具” 考虑卸载并重新安装Xcode——它可以从应用商店免费获得 安装/更新后,使用以下工具更新/安装“命令行工具”:
xcode-select --install
步骤3-安装gcc 现在,尝试重新安装
gcc
,确保使用--无多库
选项:
brew install gcc@4.9 --without-multilib
希望您现在可以使用以下工具编译OpenMP代码:
/usr/local/bin/gcc -fopenmp program.c -o program
我不确定为什么需要-无多库选项,我更喜欢引用@hristo iliev:
Multilib通常指64位和32位共存
每个库的版本,以便可以在上运行32位软件
64位操作系统。在GCC的情况下,这可能是指拥有所有GCC
“fat”Mach-O格式的运行库,即i386和i386的版本
和x86_64位于同一共享库文件中。可能是libgomp
(GNU OpenMP运行库)不能以这种方式构建
看
关键词:gcc、g++、GNU编译器、OpenMP、fopenmp、-fopenmp、Xcode、多库、命令行工具、macOS、OSX、自制、brew错误,约塞米蒂是v10.10,Leopard是v10.5…哎呀!谢谢你,马克。应该说Yosemite(OS 10.10.5)您是否使用/usr/local/bin/gcc-4.9
作为编译器?编译时使用了哪些标志?你试过编译一段微不足道的代码吗?您是否使用了brew安装gcc XYZ——不带multilib
?感谢Mark的帮助;非常感谢。我从命令行上的gcc-4.9开始,但是/usr/local/bin在我的路径上。在编译时,无论是使用-fopenmp还是-Wall标志,我都会遇到同样的问题。我将尝试你的建议,编译一段简单的代码。如果我没记错的话,我只是使用brew安装gcc@4.9没有别的了,马克,你很清楚能解决我的问题。是的,当我尝试用gcc-4.9编译一个没有pragmas、没有GSL、没有动态内存分配等的简单C程序时,我得到了相同的错误消息流,从/var开始!