#c #macos #gcc #cmake
#c #macos #gcc #cmake
Вопрос:
После обновления Mac os до mavericks мой проект больше не компилировался с новым компилятором (clang 5.1 …).
Итак, я установил старый gcc 4.2, следуя объяснению по этой ссылке.
https://coderwall.com/p/lqpp8w
Затем я изменил символические ссылки cc и c , чтобы указать на тот gcc, который я только что установил
Когда я запускаю cmake, он находит компиляторы gcc 4.2 вместо clang 5.1. Однако он все еще хочет использовать включения из нового xcode:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c /4.2.1/
Вместо компиляторов, найденных:
/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/include/gcc/darwin/4.2/
Вот результат моего cmake
-- The C compiler identification is GNU 4.2.1
-- The CXX compiler identification is GNU 4.2.1
-- Checking whether C compiler has -isysroot
-- Checking whether C compiler has -isysroot - yes
-- Checking whether C compiler supports OSX deployment target flag
-- Checking whether C compiler supports OSX deployment target flag - yes
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Checking whether CXX compiler has -isysroot
-- Checking whether CXX compiler has -isysroot - yes
-- Checking whether CXX compiler supports OSX deployment target flag
-- Checking whether CXX compiler supports OSX deployment target flag - yes
-- Check for working CXX compiler: /usr/bin/c
-- Check for working CXX compiler: /usr/bin/c -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
и далее CMakeCache.txt У меня есть следующее
CMAKE_OSX_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/
Как я могу избавиться от этого плохого включения?
Спасибо.
Комментарии:
1.
cmake -DCMAKE_CXX_COMPILER=clang
иcmake -DCMAKE_CXX_COMPILER=clang
не соответствует вашим потребностям?2. Извините, но я не вижу смысла. Зачем мне устанавливать для них значение clang, если я хочу использовать gcc?
3. ой, извините, я имел в виду
cmake -DCMAKE_CXX_COMPILER=clang
иcmake -DCMAKE_CXX_COMPILER=gcc
соответственно.4. @ruslo Как мне это проверить?
5. @ruslo, да, я сделал, но результат тот же. И после некоторого поиска в Google я обнаружил, что это нормально, что Apple-gcc использует эти файлы, и если я попытаюсь переименовать Xcode, он пожалуется, сказав, что не может найти xcode.