Clang и CMake в Windows
Я строю проект C++ с Clang 3.8 и CMake 3.7 на Windows, но Clang выдает ошибку в конфигурации, как показано ниже.
Определение, работает ли компилятор CXX, завершилось неудачно со следующим выводом: Изменить каталог: C:/tools/k.build/CMakeFiles/CMakeTmp Запустите команду построения:"C:/tools/ninja.exe" "cmTC_c0004" [1/2] Создание объекта CXX CMakeFiles/cmTC_c0004.dir/testCXXCompiler.cxx.obj [2/2] Связывание исполняемого файла CXX cmTC_c0004.exe СБОЙ: cmTC_c0004.exe cmd.exe /C "cd . && C:\tools\llvm-3.8.1.build\Release\bin\clang++.exe CMakeFiles/cmTC_c0004.dir/testCXXCompiler.cxx.obj -o cmTC_c0004.exe -Wl,- out-implib,libcmTC_c0004.dll.a -Wl,- major-image-version,0, -minor-image-version,0 && cd ." ССЫЛКА: предупреждение LNK4044: нераспознанная опция '/-out-implib'; игнорируются ССЫЛКА: предупреждение LNK4044: нераспознанная опция '/-major-image-version'; игнорируются ССЫЛКА: предупреждение LNK4044: нераспознанная опция '/-minor-image-version'; игнорируются ССЫЛКА: фатальная ошибка LNK1181: не удается открыть входной файл 'libcmTC_c0004.dll.a' clang++.exe: error: сбой команды компоновщика с кодом завершения 1181 (используйте -v, чтобы увидеть вызов) ниндзя: сборка остановлена: подкоманда не выполнена.
Странно то, что в CMakeFiles/CMakeTmp/ нет файлов. Как я могу заставить его работать?
1 ответ
Проще говоря, вы неправильно определяете свою цепочку инструментов. CMake считает, что вы используете компилятор MSVC с другим путем. Смотрите этот вопрос для подробного ответа. Обратите внимание, что вам все еще понадобится MSVC или Cygwin в качестве среды сборки.