Environnement de développement croisé (développement de programmes pour Windows sous Linux)

(Remarquer) Ceci est un mémo lorsque je développais un programme GUI en utilisant wxWidget sur ubuntu et que je préparais un environnement où je pourrais également développer une application pour Windows. Cet article a été écrit sur Google Sites il y a longtemps, et bien que le contenu soit obsolète, je ne supporte pas qu'il disparaisse, alors je l'ai réimprimé. Il n'a pas été revérifié au moment de la réimpression (2020/8).

Installation du compilateur et de l'environnement d'exécution

1) Installer le paquet de compilateur croisé gcc

Tout d'abord, installez un compilateur (cross-compilateur) qui crée des programmes pour Windows sous Linux.

Package à installer

python


$ sudo apt-get install mingw-w64 binutils-mingw-w64 gcc-mingw-w64 g++-mingw-w64

Les fichiers d'exécution (programmes) créés avec gcc-mingw (généralement) ne fonctionnent pas seuls. Vous avez besoin de deux choses, le fichier exécutable qui a été compilé et la bibliothèque d'exécution de mingw. Les utilisateurs Windows normaux ne disposent pas de la bibliothèque d'exécution mingw, vous devez donc distribuer le programme compilé et la bibliothèque mingw ensemble.

La bibliothèque mingw est incluse dans le package mingw32-runtime-package, donc copiez-la dans votre répertoire actuel afin de pouvoir la distribuer avec elle.

runtime


$ cp /usr/share/doc/mingw32-runtime/mingwm10.dll.gz .
$ gunzip mingw10.dll

2) Créer un environnement de test pour les programmes Windows dans un environnement Linux

Afin d'exécuter le programme pour Windows sur Linux, vous avez besoin d'un programme pour agir pour Windows

install_wine


$ sudo apt-get install wine

3) Test avec exemple de programme

hello.cpp


#include <iostream>
int main(int ac,char*av[]){
    std::cout<<"hello"<<std::endl;
    return 0;
}

test


$  i686-w64-mingw32-g++ -static-libgcc -static-libstdc++  hello.cpp 

4) Définir les variables d'environnement

setenv4cross.sh


export CC=i686-w64-mingw32-gcc
export CXX=i686-w64-mingw32-c++
export LD=i686-w64-mingw32-ld
export AR=i686-w64-mingw32-ar
export AS=i686-w64-mingw32-as
export NM=i686-w64-mingw32-nm
export STRIP=i686-w64-mingw32-strip
export RANLIB=i686-w64-mingw32-ranlib
export DLLTOOL=i686-w64-mingw32-dlltool
export OBJDUMP=i686-w64-mingw32-objdump
export RESCOMP=i686-w64-mingw32-windres
export WINDRES=i686-w64-mingw32-windres

set


$ source setenv4cross.sh

Installer les en-têtes et les bibliothèques pour le multithreading

pthread (Vous n'aurez peut-être pas besoin d'installer pthread séparément maintenant)

http://sourceforge.net/projects/mingw/files/MinGW/Base/pthreads-w32/pthreads-w32-2.9.1/

De

install_pthread


$ export SANDBOX=~/src/cross
$ mkdir pthread
$ tar xvf pthreads-w32-2.9.0-mingw32-pre-20110507-2-src.tar.lzma --lzma

# $ pkgbuild -e prep
# $ pkgbuild -e patch
# $ pkgbuild -e configure

$ cd pthreads

$ make CROSS=i686-w64-mingw32- clean GC-inlined -f GNUmakefile

$ mkdir -p $SANDBOX/{include,lib,bin}
$ cp libpthreadGC2.a $SANDBOX/lib/
$ cp *.h $SANDBOX/include/
$ cp pthreadGC2.dll $SANDBOX/bin/

Créez des wxWidgets pour la compilation croisée (si vous le souhaitez)

Compile and install Désactiver le partage, etc. dépend de vous.

install wxWidgets


$ tar xjf wxWidgets-2.8.12.tar.bz
$ cd wxWidget-2.8.12
$ ./configure --prefix=/usr/local/i586-mingw32 --host=i586-mingw32msvc --enable-unicode --build=`./config.guess` --disable-shared
$ make
$ sudo make install

Test sample N'oubliez pas de créer un lien vers la bibliothèque d'exécution.

$ cd samples
$ cd (Ce que tu veux essayer)
$ make
$ ln -s $SANDBOX/mingw10.dll .
(Exécution)
$ make clean

Comment compiler la source à l'aide de wxWidgets

Fondamentalement, vous pouvez utiliser wx-config installé pour la compilation croisée.

MINGW_PREFIX=i586-mingw32msvc
CXX=$(MINGW_PREFIX)-g++
LD=$(MINGW_PREFIX)-ld
WXCONFIG=/usr/local/i586-mingw32/bin/wx-config
WXCPPFLAGS=`$(WXCONFIG) --cppflags`
WXLIBS=`$(WXCONFIG) --libs`
t.exe: t.cpp
    $(CXX) $(WXCPPFLAGS) $(CPPFLAGS) -o t.exe t.cpp $(WXLIBS)

Les références

Mots clés de recherche: ubuntu, mingw, wine, cross complier, setup

Recommended Posts

Environnement de développement croisé (développement de programmes pour Windows sous Linux)
Développement de l'environnement Django sur Windows 10
Créer un environnement Linux sur Windows 10
Installer l'environnement de développement Python sur Windows 10
pykintone sur le sous-système Windows pour Linux
Création d'un environnement pour "Tello_Video" sous Windows
Créer un environnement Kubernetes pour le développement sur Ubuntu
Créer un environnement de développement mruby pour ESP32 (édition Linux)
Créer un environnement de développement Python basé sur GVim sur Windows 10 (3) GVim8.0 et Python3.6
Créez un environnement de développement local pour Laravel6.X sur votre Mac
Créez un environnement de développement Python 3 (Anaconda) confortable avec Windows
Créer un environnement de développement Python basé sur GVim sur l'installation de Windows 10 (1)
Créer un environnement pour MkDocs sur Amazon Linux (tentative)
Environnement de développement adapté à ArcPy
Développement Python + Kivy sous Windows
Préparer l'environnement Chainer sous Windows
F2py sur Miniconda pour Windows
Créer un environnement Python sur Windows
Linux sur Windows -1-: Présentation de Debian
[Pour organiser] Environnement de développement Python
[Tensorflow] Construction de l'environnement Tensorflow sous Windows 10
Construction de l'environnement Linux (sur environnement WSL)
Utiliser Linux sur Windows 10 (WSL2)
Les débutants Linux créent un environnement Ubuntu 16.04 sur Docker (pour Mac) -première moitié-
Créer un environnement de développement Python basé sur GVim sur les paramètres de base de Windows 10 (2)
Remarques sur la création d'un environnement Linux à l'aide de VirtualBox + Vagrant sous Windows 10
[Linux] [Paramètres initiaux] Contenu de la configuration de l'environnement de développement
Comment configurer WSL2 sur Windows 10 et créer un environnement d'étude pour les commandes Linux
Concurrence avec VS Code Créez un environnement Python pour les professionnels sous Windows
Mémo de construction de l'environnement Python sur Windows 10
Exemple de construction d'un environnement de développement python sur Windows (wsl2, vscode, pipenv)
Configurer un environnement de développement Python sur Ubuntu
Construction de l'environnement Anaconda Python sous Windows 10
installation de python2.7 dans un environnement Windows 32 bits
[Pour les débutants] Django -Construction d'environnement de développement-
[Python3] Construction de l'environnement de développement << Édition Windows >>
Options d'environnement de développement Python pour mai 2020
Construction de l'environnement de développement Python sur macOS
Paramètres Emacs pour l'environnement de développement Python
[Linux] Construction de l'environnement Docker sur Redhat
Présentation de l'environnement Python 3.5.2 sur Amazon Linux
[Definitive Edition] Création d'un environnement d'apprentissage "machine learning" à l'aide de Python sous Windows
Procédure de création d'un environnement Kube sur Amazon Linux2 (AWS) ~ (avec bonus)
Créez un environnement de développement Python sur Windows (WSL distant Visual Studio Code).
Mettre la liaison MeCab pour Python sur Windows, Mac et Linux avec pip
Construisez Linux sur un environnement Windows. Étapes pour installer Laradock et migrer
Remarques sur l'utilisation d'OpenCV avec Windows10 Python 3.8.3.
[UE4] Construire DedicatedServer sous Windows et Linux
Le sous-système Windows pour Linux ne s'affiche pas
Ajout d'un environnement de développement local sur MacOS
Environnement de développement Python pour macOS utilisant venv 2016
Environnement de création de module d'extension Python 2.7, 3.4, 3.5 sous Windows
Procédure de construction de l'environnement de projet Python (pour Windows)
Installez wsl2 et master linux sous Windows
Windows → Linux Conseils pour importer des données
Procédure d'installation de WSL2 (sous-système Windows pour Linux)