- 締切済み
Visual StudioのGUIとコマンドラインによるコンパイル
Visual Studio .NET2003を使ってます. 普段GUIでビルドしているのですが, それをコマンドプロンプトからclとlinkコマンドでやろうと思いました. プロジェクトのプロパティの 「C/C++」と「リンク」それぞれの「コマンドライン」というところで確認できるオプションを それぞれそのままclとlinkの後ろにコピペして実行しました. (clの方はソースファイルも最後に追加して.) ところが,出来上がったDLLの挙動が, GUIでビルドした場合と違っています. (JNIでJavaから呼び出しているのですが, コマンドプロンプトから実行した方は呼び出すときにエラーを出します.) GUIでやろうがコマンドラインからやろうが 同じ挙動になると思っていたのですが, 必ずしもそうではないのでしょうか. 用意した環境の不備など何かの見落としによりありえるのでしょうか. アドバイス頂ける方いらっしゃいましたら,お願い致します.
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- chie65536(@chie65535)
- ベストアンサー率44% (8742/19841)
>GUIでやろうがコマンドラインからやろうが >同じ挙動になると思っていたのですが, 同じ挙動はしません。 GUIコンパイラと、コマンドプロンプトで起動するコンパイラは、オプションのデフォルト値が違います。 GUIコンパイラは、フォームアプリケーションやDLLをコンパイルするのに合わせたデフォルト値になっています。 しかし、コマンドプロンプトで起動するコンパイラclは、コンソールアプリケーションをコンパイルするのに合わせたデフォルト値になっています。 なので、プロジェクトのコマンドラインをそのまま書き写しただけでは、コンパイラは異なる動きをして、正常に動作しない不完全なターゲットファイルを生成する筈です。
補足
ご回答ありがとうございます. これ以上踏み込むつもりはないのですが, ではそのデフォルト値を変更するオプションがあり, プロジェクトのコマンドラインを書き写したものに それを加えたら,同一になるということでしょうか?