2013-08-06 2 views
1

Я использую Eclipse 4.2 в Mac OS 10.8 с установленными инструментами командной строки (Xcode 4.6.3). Компилятор clang поддерживает C++ 11 с помощью следующих флагов: -std=c++11 -stdlib=libc++.Использование clang ++ для анализа кода в проекте Autotools в Eclipse

У меня есть проект под управлением Autotools в Eclipse. Реальная компиляция работает как ожидается после переопределения CXX и CXXFLAFGS переменных среды, когда вызывается configure. Тем не менее, анализ статического кода в Eclipse продолжает использовать GCC (версия, установленная с Xcode, является GCC 4.2), поэтому нет поддержки для C++ 11, и много строк отображают ошибки, которые не являются реальными, делая статический анализ кода почти бесполезно.

Использование homebrew Я также установил GCC 4.7, но мне не удалось заставить Eclipse использовать эту версию (или clang ++) для выполнения статического анализа кода.

Возможно ли при использовании проекта, управляемого Autotools, чтобы заставить Eclipse использовать другой компилятор для анализа статического кода? Где я должен это указать?

+0

Хм, интересно. Я всегда думал, что статический анализ выполняется Codan, см., Например, [C++, Eclipse CDT code analysis?] (Http://stackoverflow.com/q/5540751/341970). Откуда вы знаете, что статический анализ сделанный gcc в вашем случае? (Я использую Linux.) – Ali

+0

@Ali Я не совсем уверен, как выполняется фактическая проверка, но я предполагаю, что в этом случае Codan все равно должен искать заголовки include. И это не должны быть те, что включены в GCC 4.2 (Xcode 4.6.3), но также и Clang's, или те, которые включены в GCC 4.7 (через homebrew). – betabandido

+0

Да, это имеет смысл. Если это какое-то утешение, статический анализ все еще не работает с C++ 11 (или C++ 98, несмотря на мой отчет об ошибке). Это первое, что я установил в Eclipse, я отключил статический анализ ... :( – Ali

ответ

0

После установки Xcode 5 и в соответствии с указаниями в this question мне удалось решить проблему (я больше не могу проверить, относится ли это также к Xcode 4.6).

Решение пойти в Project properties ->C/C++ General ->Preprocessor Include Paths, Macros etc. ->Providers ->CDT GCC Built-in Compiler Settings, и в Command to get compiler specs: добавить -std=c++11 -stdlib=libc++.

После выполнения этого изменения, строка должна выглядеть следующим образом:

$ {COMMAND} -E -P -v -dd $ {} ВХОДЫ -std = C++ 11 -stdlib = LibC++

Смежные вопросы