回答:
クロスコンパイルを行いたい。これは、特にプロセッサが完全に異なる場合に、自分のプラットフォーム以外のプラットフォーム用のコードをコンパイルする方法です。基本的に、ターゲット(つまり、windows)のすべてのヘッダーをインストールしてから、コンパイラーにクロスコンパイルを伝えて、システムチェックの一部を行わず、代わりに非標準のディレクトリを指すようにする必要があります。
言語に応じて、検索や質問を具体的に行うと便利な場合があります。また、基本的なcを実行している場合は、MinGWツールとgccを使用する同じ種類のLinuxベースのコンパイルツールを使用できます。
sudo apt-get install gcc-mingw32
あなたは見ている必要がありmingwのを。Windows用のgcc互換コンパイラーを提供します。
LinuxからWindowsバイナリを生成するために使用できるクロスプラットフォームバージョンがあります。synapticでインストールするか、次を実行してインストールできます。
sudo apt-get install gcc-mingw32
それに基づいて、通常の「make」コマンドを使用して、Windows用のプログラムを作成できます。
その後、makeとgccを使用できるIDEであれば、このコンパイラを使用できます。たとえば、これはCode :: Blocks IDEからそれを行う方法です。
他の答えは、C / C ++コードに対して正しいです。クロスコンパイラを取得する必要があります。
C#コードの場合、Monoのコンパイラは.NETコンパイラと同じタイプのバイトコードと実行可能形式を生成するため、Monodevelopを 使用できます(およびその逆)。Monoで構築したアプリは、標準の.NET Base Class Libraries内に留まるか、アプリで使用する追加のライブラリをバンドルしている限り、Windowsマシン上で変更なしで実行されます。
Qt CreatorでQtを試してみたいと思うかもしれません。GUI、コンソールアプリケーション用の優れたフレームワーク。Windows、Linux、OS X向けにコンパイルできます。
WindowsアプリケーションLinux(ubuntu)をプログラムする最も一般的な方法は、mingwツールを使用することです。
すぐにインストールできるmingw用のubuntuパッケージがあります。
このページから:
sudo apt-get install wine mingw32 mingw32-binutils mingw32-runtime
基本的なクロスコンパイルに必要なのはこれだけです。やってみよう:
#include <windows.h>
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MessageBox(NULL,
"Cette fenêtre prouve que le cross-compilateur est fonctionnel !",
"Hello World", MB_OK);
return 0;
}
これをコンパイルするには:
i586-mingw32msvc-g++ -o essai.exe essai.cpp
実行するには、mingwライブラリが必要です:mingwm10.dll:
gunzip -c /usr/share/doc/mingw32-runtime/mingwm10.dll.gz > mingwm10.dll
次に、それを起動できます。
wine essai.exe
ダイアログボックスのテキストはフランス語のアクセント付きで、gvimでそれを行うには、ソースをWindowsコードページ1252に変換します。<ESC>:e ++enc=cp1252
より強力な別の解決策はUTF-8を使用することですが、これには文字列の処理方法を変更する必要があります。