Захват нежелательных включений Cmake

#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.