私はcygwinでmingw 64ビットを使用しています。MinGW、静的にリンクするのを避けるにはlibstdC++
は私が
x86_64-w64-mingw32-g++.exe -std=c++11 hello.cpp
を使用してコンパイルする場合は、ライブラリパスがのlibstdC++と他のライブラリがPATH環境変数に指定されていない限り、出力.EXEが実行されないことを知っています。
代替は私が簡単に別のマシンにコピーすることができ、単一の.exeをしたいので、第二の溶液は、私のために優れている静的
x86_64-w64-mingw32-g++.exe -std=c++11 hello.cpp -static-libgcc -Wl,-Bstatic -lstdc++ -lpthread
リンクすることです。私の唯一の問題は、静的にリンクするので、単純なhelloworldプログラムであっても、実行可能ファイルのサイズが10Mb以上になることです。だから私の質問です:実際には、プログラムによって実際に使用されているライブラリの部分だけを静的にリンクすることは可能ですか?
私は行ったことがない:これらのオプションは(この回答の目的のために、Cygwinのプラットフォームを含む)は、Windows上では動作しません念頭に置い
が、これはあなたがこれを行うことができますどのように一般的ですこれらの操作は以前のものです。詳細や例を教えていただけますか? - – Hybridslinky