Возможно ли использовать CMake (или другую утилиту автоматизации сборки) для создания проектов Visual C++, которые используют компилятор C++ , отличный от cl.exe? В идеале он может найти соответствующую совместимую стандартную библиотеку C++; и разрешить отладку шага; но по одному шагу за раз: если бы он мог даже скомпилировать пустую функцию main
, это было бы хорошим началом.Может ли CMake (или аналогичный) генерировать проекты Visual C++, которые не используют cl.exe?
ответ
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 компилятором.
Примечание: для версии компилятора Intel версии 2016 синтаксис слегка изменился; оставить '' XE''; Мне пришлось использовать «-T» Intel C++ Compiler 16.0 "' ' – Phil
- 1. Может ли CMake генерировать скрипты сборки, которые * не * используют cmake?
- 2. Проекты, которые используют SpeC#/Code Contracts.NET
- 3. midl не может найти C preprocessor cl.exe
- 4. ASP.NET MVC демо-проекты, которые используют модели
- 5. Существуют ли крупные коммерческие проекты, которые используют Squeak Smalltalk?
- 6. Ошибка: Cmake не может генерировать OpenCV
- 7. Visual studio не имеет cl.exe
- 8. Как быстро генерировать проекты на C++ arborescence
- 9. Должен ли я научиться реализовывать ООП в C? Существуют ли проекты, которые используют ООП в C?
- 10. CMake не находит компилятор Visual C++
- 11. Visual studio 2013, не может открывать или создавать проекты
- 12. Как построить проекты MTd, которые используют DLL MDd в VS2005
- 13. CMake cl.exe не в состоянии составить простую тестовую программу
- 14. log4net влияет на другие проекты, которые даже не используют его
- 15. Visual C++ 2010 - код выхода CL.exe 5
- 16. Вложенные проекты и цели CMake
- 17. Visual Studio 2010 не может строить проекты
- 18. Проекты создания Visual Studio Waf?
- 19. Могут ли проекты C++ использовать T4 в Visual Studio 2010?
- 20. Проекты с открытым кодом Java, которые используют модификаторы `final` везде
- 21. Проверьте, генерирует ли Visual Studio решение или Makefile из CMake
- 22. Как хранить и проверять проекты, которые используют общесистемный POM?
- 23. Настоящие проекты winforms/wpf, которые используют MVC, MVP, MVVM
- 24. Eclipse: Невозможно исследовать мои проекты, файл ресурсов не может генерировать
- 25. Проекты с открытым исходным кодом, которые используют gradle
- 26. Cmake не может генерировать общую библиотеку, но создается статическая библиотека
- 27. C# методы, которые используют интерфейс?
- 28. , которые используют один синглтон C#
- 29. Какие нерублевые проекты используют Rake?
- 30. генерировать данные для нескольких архитектур с помощью cl.exe
Я чувствую, что возникает некоторый путаница, лежащая в основе этого вопроса ... Прежде всего, ниндзя не генерирует VS-проекты - ниндзя make-файлы - это * target * для cmake, чтобы позволить строить с помощью инструмента ninja. Но самое главное, вам не нужен проект VC++ для отладки исходного уровня с помощью Visual Studio, если компилятор испускает информацию об отладке в совместимом формате (а именно PDB), отладчик VC++ отлично работает. –
Спасибо, Маттео, я обновил вопрос. Если вы знаете о решении, не стесняйтесь дать ответ. – user2023370
Оба компилятора Intel и Clang могут быть доступны в виде набора инструментов для платформы в Visual Studio. Например, cmake -G «Visual Studio 12 Win64» -T «Intel C++ Compiler XE 14.0», я генерирую проекты визуальной студии и файлы решений, но компилирую с помощью компилятора Intel –