クライアントの場合、Visual Studio 2010 IDE でコマンド ライン ベースのビルド ツールを再作成しようとしています。私が釘付けにしたC / C ++ソースファイルを含むプロジェクトからのライブラリのコンパイルは、ライブラリがコマンドラインツールとまったく同じ順序で指定された場合にのみ実行可能ファイルが正しくリンクされるため、リンクコマンドラインは私に悲しみを与えています。
コマンドラインは次のようなものです。
link.exe -subsystem:console -machine:I386 -verbose:lib
-nodefaultlib:libc.lib -nodefaultlib:libcd.lib -nodefaultlib:libcmt.lib -nodefaultlib:libcmtd.lib
-DEBUG
-out:myout.exe
-pdb:myout.pdb
-libpath:../../path/to/libs
libcmtd.lib kernel32.lib user32.lib ws2_32.lib netapi32.lib comctl32.lib gdi32.lib comdlg32.lib advapi32.lib winmm.lib imagehlp.lib shell32.lib
x_mylib.lib a_mylib.lib y_mylib3.lib z_my.lib etc....
IDE がコンパイルする .lib がこのコマンド ラインでリンクされている場合、.exe は正しいのですが、この .lib の順序で正確に IDE をリンクさせることはできません。すべてのライブラリをアルファベット順に並べ替えてリンクする必要があります。
アイデアはありますか? このすべての意味についての哲学的な議論に迷い込む誘惑を避けるために、コマンド ライン ベースのビルド ツールを変更することはできません。