Existe-t-il des outils conviviaux pour effectuer une compilation croisée de Windows vers Linux?
crosstool-ng prend en charge la création de compilateurs croisés avec cygwin Host .
Présentation:
crosstool-ng
tar xvjf crosstool-ng*
)./configure
flex
, libtool
, ncurses-devel
) Vous aurez besoin au moins des éléments suivants: make
make install
/usr/src/cross-linux-gnu-root
mount c:/cygwin/usr/src/cross-linux-gnu-root /usr/src/cross-linux-gnu -o binary,posix=1
)ct-ng menuconfig
x86
(probablement) et sous-architecture à i686
(évite problèmes GCC 4.8 , merci osm0sis), cible le noyau vers linux
et cible la bibliothèque C vers glibc
, et active le compilateur C++.Paths and misc options
puis, allez dans Companion tools
(au niveau supérieur) et activez Build some companion tools
et alors make 3.81
(Merci osm0sis)ct-ng build
Bien sûr, cela ne vous permettra PAS de créer des applications Linux à partir de Visual Studio. (VS2010 et versions ultérieures vous permettent de construire avec d'autres chaînes d'outils telles que gcc, mais vous auriez besoin d'une description de chaîne d'outils appropriée en plus du compilateur croisé créé par crosstool-ng). Mais vous aurez un travail g++-linux-gnu
, que vous pouvez exécuter directement ou à l'aide d'un Makefile.
REMARQUE: la construction du compilateur croisé prend beaucoup de temps. osm0sis a fourni n gcc 4.8.1 préconstruit ici , ainsi que ses notes sur la construction du compilateur croisé (utilisé pour mettre à jour cette réponse).
Votre meilleur pari est d'utiliser une plateforme multiplateforme IDE comme Code :: Blocks qui peut importer des projets MSVC et générer un Makefile pour Linux, que vous pouvez ensuite exécuter sur un Linux (avec même le même programme si vous le souhaitez).
Ainsi, votre flux de travail ressemblerait alors à ceci:
Code, Compile, and debug on MSVC -> import into Code::Blocks & generate Makefile
-> test compile and debug with GCC
-> copy to Linux with Code::Blocks -> test compile & debug on Linux
C'est un peu obtus, probablement, mais au moins Code :: Blocks s'occupe de beaucoup de ces petits détails avec des choses comme Makefiles, et quoi d'autre.
Demandez-vous quelque chose qui peut prendre du code écrit pour s'exécuter sur Windows et le faire fonctionner sur Linux? Il n'y a pas vraiment de compilateur qui fait ça - mais peut-être que vous cherchez Wine ( http://www.winehq.org/ ) qui vous permet d'exécuter des applications Windows sur linux (si elles utilisent des API Wine a réfléchi).
Modifier: Je suppose que votre code utilise des API Windows (Win32, etc.) dans cette réponse. Si vous utilisez uniquement C++ standard et les bibliothèques disponibles sur plusieurs plates-formes, il existe de nombreuses autres réponses.
Je ne crois pas qu'il existe de compilateurs qui vous permettent de compiler sur Windows, puis de prendre le binaire résultant et de l'exécuter sur une machine Linux. Votre meilleur pari est de mettre en place deux environnements de développement, l'un sur Windows et l'autre sur Linux. Faites l'essentiel de votre développement et de votre débogage dans l'environnement Windows si cela vous convient, puis compilez et testez fréquemment sous Linux pour vous assurer que votre code est vraiment multiplateforme. Vous voudrez également utiliser un système de construction multiplateforme et un cadre de test. Je recommande d'utiliser cmake et Google Test , respectivement.
Compiler vers Linux à partir de Windows sans utiliser la virtualisation ou le compilateur croisé mais uniquement nativement via coLinux
Créez des fichiers exécutables Linux natifs sans quitter (redémarrer) les fenêtres.
Compilation C/C++ pour Linux sous Windows via Linux coopératif
La commutation la plus rapide entre Windows et Linux via ALT-TAB (aucun redémarrage ni redémarrage nécessaire).
1.Installez coLinux ( http://sourceforge.net/projects/colinux/files/latest/download?source=files )
2.Utilisez l'image du système de fichiers racine coLinux: Ubuntu-9.04-1gb.7z ( http://sourceforge.net/projects/colinux/files/Images%202.6.x%20Ubuntu/Ubuntu% 209.04 / )
3. démarrez coLinux
4.changez la chaîne "archive.ubuntu.com" en "old-releases.ubuntu.com" avec:
Shell> Sudo vi /etc/apt/sources.list
5.Mettez à jour votre configuration:
Shell> Sudo apt-get update
6.Installez deux progiciels pour pouvoir compiler vos programmes:
Shell> Sudo apt-get install build-essential
(c/c ++, compilateurs gcc)
Shell> Sudo apt-get install libmysqlclient15-dev
(mysql dev 5.1)
7.Accès aux répertoires Windows à partir de coLinux
Shell> monter cofs0/mnt/-t cofs
Shell> cd/mnt
8.Compiler
Shell> c ++ your.source.cc -o executable.name