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 в качестве среды сборки.

Другие вопросы по тегам