【发布时间】:2016-06-16 09:58:56
【问题描述】:
我安装了 MacPorts GCC 编译器,并为集成汇编器安装了 MacPorts Clang:
$ port installed | egrep -i '(gcc|g\+\+|clang)'
clang-3.8 @3.8-r262722_1+analyzer (active)
clang_select @1.0_0 (active)
gcc49 @4.9.3_0 (active)
gcc_select @0.1_8 (active)
libgcc @6.1.0_0 (active)
当我尝试使用集成汇编器编译一个空程序时:
$ cat test.cc
int main(int argc, char* argv[])
{
return argc;
}
导致错误:
$ /opt/local//bin/gcc-mp-4.9 -Wa,-q -march=native test.cc -o test.exe
/opt/local/bin/as: assembler (/opt/local/bin/clang) not installed
还有:
$ ls /opt/local/bin/clang
ls: /opt/local/bin/clang: No such file or directory
使用集成汇编器似乎不仅仅是-Wa,-q。如果我省略-Wa,-q,那么真正的程序会遇到类似于How to use AVX/pclmulqdq on Mac OS X 的故障。
如何告诉 GCC 编译器使用已安装 Clang 中的集成汇编器?即clang++ -Wa,-q -Wa,as=/opt/local/bin/clang-mp-3.8
或者,在版本号很重要的情况下,这些东西是否需要成对安装?即,像 GCC 4.9(2016 年 1 月)这样的东西需要 Clang 3.7(2016 年 1 月)?
或者,MacPorts 通常在/opt/local/bin/clang 放置什么编译器?例如,Clang 3.5 通常放在/opt/local/bin/clang
为了完整起见,这台 MacBook 有 MacPorts,但它不在路径上。我使用 MBP 进行 OS X 测试,第二个角色是 [即将成为] MacPorts 测试。但是,我避免将 MacPorts 放在路径上以避免污染 OS X 测试。
【问题讨论】:
标签: macos gcc assembly macports