Я установил CMake 3.17.1, g cc 9.3.0, openmpi 3.1.5 и другие инструменты на свой Ma c (10.15.4) с помощью spack. Я могу настроить и собрать свой код со следующими параметрами
cmake ../ \
-DMPI_C_COMPILER=mpicc -DMPI_CXX_COMPILER=mpicxx \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER=gcc \
-DCMAKE_CXX_COMPILER=g++ \
-DCMAKE_Fortran_COMPILER=gfortran
Однако, когда я добавляю параметр генератора Xcode:
cmake -G Xcode ../ \
-DMPI_C_COMPILER=mpicc -DMPI_CXX_COMPILER=mpicxx \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_C_COMPILER=gcc \
-DCMAKE_CXX_COMPILER=g++ \
-DCMAKE_Fortran_COMPILER=gfortran
cmake не может идентифицировать компилятор и дает следующие ошибки:
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
-- Check for working C compiler:
<trimmed content>
-- Configuring incomplete, errors occurred!
Я пробовал xcode-select --reset
, как предлагалось в других сообщениях, безуспешно.
Есть ли способ решить эту проблему и заставить cmake сгенерировать рабочую область для Xcode?
Обновление : похоже, что команда сборки, которую Cmake использует для компиляции тестового кода, добавляет параметры, допустимые для clang, но не для g cc.
gcc -x c -target x86_64-apple-macos10.15 \
-fdiagnostics-show-note-include-stack \
-fmacro-backtrace-limit=0 -fpascal-strings \
-fasm-blocks --serialize-diagnostics \
<among other options>
Компилятор g cc жалуется на это. Где / как cmake решает, какие параметры использовать? Есть ли способ подавить эти оскорбительные варианты?