我想在使用MinGW(MSYS2)編譯的Windows項目中使用SignalR。據我所知,我不能鏈接到與另一個編譯器(即VC++)編譯的庫(dll)。使用minGW編譯基於CMake的項目
因此,我需要用MinGW編譯SignalR。 這裏庫:
https://github.com/aspnet/SignalR-Client-Cpp
該項目是基於CMake的,而不是一個標準的Makefile。 這是我做過什麼:
- 下載CMake的:https://cmake.org/files/v3.8/cmake-3.8.0-win32-x86.zip
- 提取到一個文件夾(如C:/ dev的)
- 出口CMake的/ bin文件夾到PATH VAR(在/ etc/profile文件)
- 檢查,如果它的工作原理:)通過CMake --version
- 克隆CPP的休息SDK(https://github.com/Microsoft/cpprestsdk.git)
試着這裏描述克至編譯CPP的休息SDK:
https://github.com/Microsoft/cpprestsdk/wiki/How-to-build-for-Linux
導致這個輸出:
$ cmake的.. -DCMAKE_BUILD_TYPE =釋放 - 建設爲:Visual Studio的2017年15 - C編譯器標識爲MSVC 19.10.25019.0 - CXX編譯器標識爲MSVC 19.10.25019.0 - 檢查工作C編譯器:C:/ Program Files/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.10.25017/bin/HostX86/x86/cl.exe - 檢查工作C編譯器:C:/ Program Files/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.10.25017/bin/HostX86/x86/cl.exe - 作品
恐怕它仍在使用MSVC編譯器,所以輸出二進制文件將與我的應用程序不兼容。
我該如何編譯這些庫?
cmake的有CC和CXX環境變量(至少在Linux上)。你應該把這些改成你的名字。應該有命令行標誌允許這個。否則請參閱'ccmake'(再次在Linux中,但也可能在Windows中),它允許您更改許多變量和標誌等等。必要時進入高級模式 –