我想在使用MinGW(MSYS2)编译的Windows项目中使用SignalR。据我所知,我无法链接到使用其他编译器(即VC ++)编译的库(dll)。
因此,我需要使用MinGW编译SignalR。 这里是存储库:
https://github.com/aspnet/SignalR-Client-Cpp
该项目基于CMake而不是标准的Makefile。 这就是我所做的:
尝试按照此处所述编译Cpp Rest SDK:
https://github.com/Microsoft/cpprestsdk/wiki/How-to-build-for-Linux
导致此输出:
$ cmake .. -DCMAKE_BUILD_TYPE =发布 - 构建于:Visual Studio 15 2017 - 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编译器,因此输出二进制文件不能与我的应用程序兼容。
我应该如何编译这些库?
答案 0 :(得分:2)
CMake本身并没有构建任何东西。而是它为make,MSBuild,Ninja等生成配置文件。每个平台都有其默认生成器。对于Windows,即Visual Studio / NMake。
您可以使用CMake’s -G
option手动选择生成器。某些生成器名称包含空格。确保在这些引号周围加上引号。
答案 1 :(得分:1)
我不熟悉mingw工具链,但在cygwin中它包含了自己的cmake构建,您可以使用它来为您的库生成构建系统。您正在使用预编译的Windows二进制文件来检测Visual Studio。
如果mingw不包含预构建的cmake,我会下载源代码并在mingw中编译它,然后使用该cmake二进制文件生成SignalR的构建系统。
从:http://www.cmake.org/download/下载 并通过以下方式构建它:
./bootstrap
make
make install