【发布时间】:2017-05-15 12:02:47
【问题描述】:
我最终想使用 valgrind 找出导致 C 程序中偶尔出现奇怪输出的原因,该程序使用 OpenMP 并行编程针对实验数据优化模型。
为了避免使用名义上的 gcc(即 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:suffix 或者操作数对 `movq' 无效
我不知道触发这些错误消息的问题是什么。有人可以帮忙吗?
【问题讨论】:
-
呃,Yosemite 是 v10.10,Leopard 是 v10.5...
-
糟糕!谢谢马克。应该说优胜美地(OS 10.10.5)
-
您是否使用
/usr/local/bin/gcc-4.9作为您的编译器?编译时使用了哪些标志?您是否尝试过编译一段微不足道的代码?你用brew install gcc-XYZ --without-multilib了吗? -
感谢马克的帮助;非常感谢。我在命令行上从 gcc-4.9 开始,但 /usr/local/bin 在我的 PATH 上。无论我在编译时使用 -fopenmp 还是 -Wall 标志,我都遇到了同样的问题。我会尝试你编译一段简单代码的建议。如果我没记错的话,我只是简单地使用了 brew install gcc@4.9 而没有其他任何东西。
-
马克,你显然很好地解决了我的问题。是的,当我尝试使用 gcc-4.9 编译一个没有编译指示、没有 GSL、没有动态内存分配等的简单 C 程序时,我会收到以 /var 开头的相同错误消息流!
标签: parallel-processing gcc4.9