У меня проблема с тем, чтобы заставить CMake использовать компоновщик MSVS вместо компоновщика MinGW.Для поддержки MSVC в MSYS я реализовал bash-скрипт, заставляющий CMake использовать компилятор MSVC для создания файлов NMake:
cmake -G "Makeake-файлы NMake" -DMSVC = true -DCOMPILER_ROOT = $ COMPILER_ROOT -DCMAKE_PROFILE = $ CMAKE_PROFILE -DCMAKE_BUILD_TYPE = $ CMAKE_DEBUG -DCMAKE_CXX_LINKER = $ COMPILER_ROOT / бен / linker.exe
CMake использует компилятор MSVC правильно и создает файлы NMake как и ожидалось:
1008
Но при вызове nmake CMAKE по-прежнему использует компоновщик MinGW:
Linking CXX shared library bin\brCore.dll
c:\binrev\development\mingw\bin\ld.exe: unrecognized option '-Wl,--enable-auto-import'
c:\binrev\development\mingw\bin\ld.exe: use the --help option for usage information
LINK failed. with 1
NMAKE : fatal error U1077: "c:\binrev\development\cmake\bin\cmake.exe": Rückgabe-Code "0xffffffff"
Stop.
NMAKE : fatal error U1077: "c:\binrev\development\vs2010\VC\BIN\nmake.exe": Rückgabe-Code "0x2"
Stop.
NMAKE : fatal error U1077: "c:\binrev\development\vs2010\VC\BIN\nmake.exe": Rückgabe-Code "0x2"
Stop.
После запуска сценария оболочки bash в CMakeCache вместо компоновщика MSVC устанавливается компоновщик MinGW:
//Path to a program.
CMAKE_LINKER:FILEPATH=c:/binrev/development/mingw/bin/ld.exe
Хорошо, я понял, что должен установить переменную CMAKE_LINKER вместо CMAKE_CXX_LINKER, чтобы получить правильную зависимость.Но теперь у меня есть еще одна ошибка:
Linking CXX shared library bin\brCore.dll
Das System kann die angegebene Datei nicht finden
mt.exe : general error c10100b1: Failed to load file "bin\brCore.dll". Das System kann die angegebene Datei nicht finden.
MT failed. with 31
Кто-нибудь знает, что я сделал неправильно?Спасибо за любую помощь.
С наилучшими пожеланиями, Hellhound