我昨天更新了我的 Xcode(9.0 版),从那以后我再也不能用 clang 编译我的代码了。它适用于苹果本地编译器,但在 macports 中使用 clang 时会出现编译错误。我现在将解释更多细节......
我通常使用 clang 4.0,因为它支持 openmp,我通过创建用户定义的设置在 Xcode 中进行更改,如下图所示。
包含如何在 Xcode 中从 macports 使用 clang 4.0 的图像
这已经完美运行了一段时间,直到我更新到 Xcode 9.0。现在,我从 clang 编译器收到以下错误:
生成多个输出文件时不能指定 -o。
我研究了一下,很多人说这是因为编译表中可能有 .h 文件。我仔细检查过,这不是我的情况。我也认为这个错误会发生在较旧的 Xcode 版本上。
接下来,我附上 Xcode 给出的完整编译命令(虽然有点大!)。
CompileC /Users/Nathan/Documents/Programming/ISET_CoupledFormulationMerged/ProjectXcodeParallel/lib/ISET.build/Debug/scieng.build/Objects-normal/x86_64/ComplexFloat.o SciEng/Algebra/ComplexFloat.C normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
cd /Users/Nathan/Documents/Programming/ISET_CoupledFormulationMerged/SetSolver
export LANG=en_US.US-ASCII
/opt/local/bin/clang-mp-4.0 -x c++ -arch x86_64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -Wno-trigraphs -fpascal-strings -O0 -Wno-missing-field-initializers -Wno-missing-prototypes -Wno-return-type -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wno-unused-function -Wno-unused-label -Wno-unused-parameter -Wno-unused-variable -Wunused-value -Wno-empty-body -Wno-uninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion …Run Code Online (Sandbox Code Playgroud)