2017-04-14 3 views
0

Je souhaite utiliser SignalR dans un projet Windows compilé avec MinGW (MSYS2). Pour autant que je sache, je ne peux pas lier sur une bibliothèque (dll) compilée avec un autre compilateur (c'est-à-dire VC++). Par conséquent, j'ai besoin de compiler SignalR avec MinGW. Voici le dépôt:Compilation de projet CMake avec minGW

https://github.com/aspnet/SignalR-Client-Cpp

Le projet est basé sur CMake plutôt que d'un Makefile standard. C'est ce que je l'ai fait:

Tryin g pour compiler le Cpp Rest SDK comme décrit ici:

https://github.com/Microsoft/cpprestsdk/wiki/How-to-build-for-Linux

conduit à cette sortie:

$ cmake .. -DCMAKE_BUILD_TYPE = sortie - bâtiment pour: Visual Studio 15 2017 - L'identification du compilateur C est MSVC 19.10.25019.0 - L'identification du compilateur CXX est MSVC 19.10.25019.0 - Vérifier que le compilateur C fonctionne: C:/Program Files/Microsoft Visual Studio/2017/Communauté/VC/Outils/MSVC/14.10.25017/bin/HostX86/x86/cl.exe - Vérifier le compilateur C de travail: C:/Program Files/Microsoft Visual Studio/2017/Communauté/VC/Outils/MSVC/14.10.25017/bin/HostX86/x86/cl.exe - Travaux

J'ai peur qu'il utilise encore le compilateur MSVC afin que les binaires de sortie ne soient pas compatibles avec mon application.

Comment dois-je compiler ces bibliothèques?

+0

CMake a le CC et les variables d'environnement CXX (au moins sur linux). vous devriez les changer pour votre mingw. il devrait y avoir des drapeaux de ligne de commande qui le permettent aussi. sinon, voyez 'ccmake' (encore sous Linux, mais peut-être aussi dans Windows) qui vous permet de changer beaucoup de variables et de drapeaux et ainsi de suite. passer en mode avancé si nécessaire –

Répondre

2

CMake ne construit rien lui-même. Il génère plutôt les fichiers de configuration pour make, MSBuild, Ninja, etc. Chaque plate-forme a son générateur par défaut. Pour Windows, c'est Visual Studio/NMake.

Vous pouvez sélectionner un générateur manuellement avec CMake’s -G option. Certains noms de générateurs contiennent des espaces. Assurez-vous de mettre des citations autour de ceux-ci.

1

Je ne suis pas familier avec la chaîne d'outils mingw, mais dans cygwin, il inclut sa propre version de cmake pour laquelle vous devez générer le système de construction de votre bibliothèque. Vous utilisez le binaire Windows précompilé qui va détecter Visual Studio.

Si mingw n'inclut pas de cmake prédéfini, je téléchargerais la source et la compilerais dans mingw, puis j'utiliserais ce binaire cmake pour générer le système de construction de SignalR.

Télécharger de: http://www.cmake.org/download/ Et construire par:

./bootstrap 
    make  
    make install