2015-12-30 3 views
2

Возможно ли использовать CMake (или другую утилиту автоматизации сборки) для создания проектов Visual C++, которые используют компилятор C++ , отличный от cl.exe? В идеале он может найти соответствующую совместимую стандартную библиотеку C++; и разрешить отладку шага; но по одному шагу за раз: если бы он мог даже скомпилировать пустую функцию main, это было бы хорошим началом.Может ли CMake (или аналогичный) генерировать проекты Visual C++, которые не используют cl.exe?

+0

Я чувствую, что возникает некоторый путаница, лежащая в основе этого вопроса ... Прежде всего, ниндзя не генерирует VS-проекты - ниндзя make-файлы - это * target * для cmake, чтобы позволить строить с помощью инструмента ninja. Но самое главное, вам не нужен проект VC++ для отладки исходного уровня с помощью Visual Studio, если компилятор испускает информацию об отладке в совместимом формате (а именно PDB), отладчик VC++ отлично работает. –

+0

Спасибо, Маттео, я обновил вопрос. Если вы знаете о решении, не стесняйтесь дать ответ. – user2023370

+2

Оба компилятора Intel и Clang могут быть доступны в виде набора инструментов для платформы в Visual Studio. Например, cmake -G «Visual Studio 12 Win64» -T «Intel C++ Compiler XE 14.0» , я генерирую проекты визуальной студии и файлы решений, но компилирую с помощью компилятора Intel –

ответ

5

CMake отличает генераторы и наборы инструментов.

Генераторы производят управляющие файлы для систем сборки, например Makefile s для make или .sol файлов для Visual Studio или .ninja файлов для Ninja-build. Существует несколько генераторов для различных платформ. Генератор передается в cmake с -G. Поскольку вы хотите использовать Visual C++, вы должны использовать Visual Studio 12 2013 Win64 или Visual Studio 14 2015 Win64. [documentation]

Инструменты задают используемый компилятор. Это может быть кросс-компилятор или просто альтернативный компилятор (MinGW или Clang вместо cl.exe). Набор инструментов должен поддерживаться генератором. Вы набор инструментов через -T. В настоящее время набор инструментов плохо документирован, и нет списка доступных наборов инструментов. Чтобы использовать компилятор Intel, используйте что-то похожее на Intel C++ Compiler XE 14.0.

В целом это дает

cmake -G "Visual Studio 14 2015 Win64" -T "Intel C++ Compiler XE 14.0" .. 

для создания проекта из родительского каталога с VS 2015 и Intel C++ 14 компилятором.

+2

Примечание: для версии компилятора Intel версии 2016 синтаксис слегка изменился; оставить '' XE''; Мне пришлось использовать «-T» Intel C++ Compiler 16.0 "' ' – Phil

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