Поэтому я только что скачал новое Visual Studio Update 1. и я пытаюсь заставить CMake создать правильный набор инструментов для платформы.
В обновлении 1 появился новый набор инструментов: Clang 3.7 с Microsoft CodeGen
Довольно захватывающе, да!
Во всяком случае, я пытаюсь заставить CMake сгенерировать здесь правильный набор инструментов.
ПРЕДПОЛОЖЕНИЕ 1. Имя набора инструментов, которое может принять CMake, — v140_clang
. Я предполагаю это, потому что это то, что указано в скобках, и это то, что используется в других наборах инструментов, таких как
7C:\Users\russe\Documents\TestCMAKECLANG>ls
CMakeLists.txt main.cpp
C:\Users\russe\Documents\TestCMAKECLANG>cat CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
add_executable(TestEXE main.cpp)
C:\Users\russe\Documents\TestCMAKECLANG>cat main.cpp
// use some fancy c++14 feature that VS doesn't have
template<typename T>
constexpr T doThing{};
int main(){}
C:\Users\russe\Documents\TestCMAKECLANG>
v120
и т. д.
Итак, я настроил простой тестовый пример:
C:\Users\russe\Documents\TestCMAKECLANG>ls
CMakeLists.txt main.cpp
C:\Users\russe\Documents\TestCMAKECLANG>cat CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
add_executable(TestEXE main.cpp)
C:\Users\russe\Documents\TestCMAKECLANG>cat main.cpp
// use some fancy c++14 feature that VS doesn't have
template<typename T>
constexpr T doThing{};
int main(){}
C:\Users\russe\Documents\TestCMAKECLANG>
Затем я запускаю CMake с правильными аргументами:
ПРЕДПОЛОЖЕНИЕ 2: у меня есть правильные аргументы
C:\Users\russe\Documents\TestCMAKECLANG>cmake -G "Visual Studio 14 2015" -T "v140_clang_3_7"
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error in :
No CMAKE_C_COMPILER could be found.
CMake Error in :
No CMAKE_CXX_COMPILER could be found.
-- Configuring incomplete, errors occurred!
See also "C:/Users/russe/Documents/TestCMAKECLANG/CMakeFiles/CMakeOutput.log".
See also "C:/Users/russe/Documents/TestCMAKECLANG/CMakeFiles/CMakeError.log".
C:\Users\russe\Documents\TestCMAKECLANG>
Чего-чего! CMAKE_C_COMPILER
или CMAKE_CXX_COMPILER
не найдено.
Так что это не работает. Посмотрим, может быть просто -T
не работает должным образом. Давайте проверим с v120
C:\Users\russe\Documents\TestCMAKECLANG>cmake -G "Visual Studio 14 2015" -T "v120"
-- The C compiler identification is MSVC 18.0.31010.0
-- The CXX compiler identification is MSVC 18.0.31010.0
-- Check for working C compiler using: Visual Studio 14 2015
-- Check for working C compiler using: Visual Studio 14 2015 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler using: Visual Studio 14 2015
-- Check for working CXX compiler using: Visual Studio 14 2015 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/russe/Documents/TestCMAKECLANG
C:\Users\russe\Documents\TestCMAKECLANG>
Работает как новорожденный. Хм.
Ладно, ребята, что дальше?
clang
иclang++
в PATH? - person arrowd   schedule 01.12.2015