Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/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
Parallel processing Can';t使用gcc-4.9编译_Parallel Processing_Gcc4.9 - Fatal编程技术网

Parallel processing Can';t使用gcc-4.9编译

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

我最终想用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'无效


我不知道触发这些错误消息的问题是什么。有人能帮忙吗?

以下总结了评论部分的工作,并导致问题得到解决。并非所有步骤都是必要的,但大多数可能都是良好的做法


步骤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开始!