MinGWでコンパイルするときに、 "-static"や "-static-libstdC++"を使用していても、exeファイルを実行する前にMinGWのbinディレクトリから特定のdllファイルをコピーする必要があります。 どうすれば変更できますか? ? MinGWの特別なビルドが必要ですか?最終的に私は、ディレクトリ内のexeファイルが、何もしてプログラムを実行できるようにしたい(とは窓の環境変数が設定されていません。)これらのファイルのされていますMinGW .exeはコードに関係なく数gccのDLLを必要としますか?
- のlibstdC++ - libgcc_s_seh-1.dll現在6.dll
- libwinpthread-1.dll現在
そして、ここでは、私は休耕ステップの完全なリストである:
- オープンアップコード::ブロック
- を選択し、 "ファイル - >新規作成>プロジェクト - >コンソール"
- の "Hello World" プロジェクトのプロジェクト設定を記入
- 右...->のHello World(ルートターゲットプロジェクト - >はオプションのビルド]をクリックします) - >その他のオプション
- すでに設定されている "-fexceptions"
- CTRL-F9下) "-static"(または "-static-のlibstdC++" を入力します。実行せずにプロジェクトを(ビルド)
- 移動するには、中Windows Explorerを起動し、ビルドされた "Hello World.exe"ファイルを実行します。
- 「エラー:libstdC++ - 6.dllがコンピュータに存在しません」というメッセージが表示されたら「OK」をクリックしてください。
- /MinGW/bin /ディレクトリの "libstdC++ - 6.dll"を "Hello World.exe"ディレクトリにコピーします。
- "Hello World.exe"を実行してください
- "エラー:libgcc_s_seh-1.dllがコンピュータに存在しません"というメッセージが表示されたら、[OK]をクリックします。
- "Hello World.exe"ディレクトリに "libgcc_s_seh-1.dll"をコピーします。
- 「libwinpthread-1.dll」を繰り返しコピーして終了します。
ビューメッセージが
Hello World!
編集: は私のコマンドラインは次のとおりです。必要な上記のすべてのdllファイルと
g++.exe -Wall -fexceptions -static -static-libgcc -static-libstdc++ -g -static-libgcc -static-libstdc++ -L. -c "C:\Users\______\Desktop\Hello World\main.cpp" -o obj\Debug\main.o
g++.exe -o "bin\Debug\Hello World.exe" obj\Debug\main.o
。そして、念のために、コードは次のとおりです。
// main.cpp
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
return 0;
}
と書いています。あなたがしたいことは、すべてを1つの再配置可能な実行可能ファイルにまとめることです。 – Jiminion
コードブロックの外にビルドします。ビルドコマンドを見る必要があります。 – Jiminion