- PR -

コンパイルについて

1
投稿者投稿内容
DEC
会議室デビュー日: 2004/08/09
投稿数: 10
投稿日時: 2005-02-09 11:10
Visual Studio .NET C# のコンパイルについてなんですが、
コンパイルによってbinフォルダとobjフォルダの2つのフォルダが出来ると思います。

Releaseモードでコンパイルした場合に、binフォルダにもobjフォルダにも
Releaseフォルダが出来、Release用のEXEが出来ると思います。

binフォルダのEXEとobjフォルダのEXEの違いがわかりません。。
また、どちらのEXEを使用すべきなのでしょうか??

どなたかわかるかた教えて頂けないでしょうか m(_ _)m

mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2005-02-09 11:26
msoです。

結論だけいうとbinフォルダのexeがより正しいです。
objフォルダのexeは中間ファイルなんじゃないですか?

この辺は、リンカーとかコンパイル(正確にはビルド)の仕組みを
あれこれと勉強すればわかると思います。
ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2005-02-09 14:19
ども、ぼのぼのです。

objフォルダの下のexeとbinフォルダの下のexeはファイルとしては全く同じものです。旧バージョンのVisual Studio(VC++6.0とか)だとDebugモードとReleaseモードでビルドしたものは、デフォルトでそれぞれDebugとReleaseというフォルダの下に中間ファイルと一緒に出力されていたのですが、Visual Studio .NETでは、ここから中間ファイルを除いた「最終的な成果物」だけをbinフォルダの下にコピーしてるみたいですね。DebugモードでビルドしてもReleaseモードでビルドしても実行ファイルの出力先は同じになる、と。だからまぁobjフォルダの下のexeが中間ファイルだ、という表現は間違ってないですね…
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2005-02-09 18:15
binは最終的に出来上がったもの(つまり実際に動かすプログラム)を出力しているのではないでしょうか。
デフォルトでbinになっているだけで、プロジェクトのプロパティでどこに出力するのか指定できますよね。

objは作業中にファイルを置いたりする作業領域だと思います。
プロジェクト参照を使った場合などにはここの中に作ったexeやdllを見ているみたいですね。
1

スキルアップ/キャリアアップ(JOB@IT)