.NETフレームワークSDKでC#使っています。これ、分割コンパイルできないのでしょうか?
Cとかだと、
cc -c sub1.c
cc -c sub2.c
cc -c sub3.c
cc sub1.o sub2.o sub3.o -o app.exe
で一つの実行ファイルが作れますが、C#コンパイラででこれに相当する方法がわかりません。
/t:library や /t:module を使うと、実行用ファイルがばらばらに分かれてしまいますし・・・
皆様、どのように対処なさってるのでしょうか。
すみません、説明不足でした。
・複数のソースファイル(*.cs)から成るプロジェクトで、
毎回全部のソースファイルをコンパイルするのではなく、
変更のあったソースファイルだけをコンパイルしたい。
・生成される実行ファイルは、EXEと複数のDLLではなく、
EXE一つだけにしたい。
この二つを同時に満たす方法はあるでしょうか?
(C言語等の開発ではごく普通だと思うのですが・・・)
アドバイスよろしくお願いいたします。
309 :
デフォルトの名無しさん:03/09/15 13:52
>>308 できるに決まってるだろ
頭悪いな。
もしひとつのクラスを分割したいという話なら次まで待て
できますかと聞かれてただできますと答えるやつも
相当頭悪いな。
すみません、数ヶ月以上探しているのですが方法が見つけられません。
できて当然だとは思うのですが・・・
お手数ですが、Makefileの書き方の一例など教えていただけませんか?
例えば、Cだとこんなふうに分割コンパイルしますよね。
=== sub1.c ===
extern void subroutine();
int main() { subroutine(); return 0; }
=== sub2.c ===
void subroutine() { puts("OK"); }
=== Makefile ===
all: app.exe
app.exe: sub1.o sub2.o
cc sub1.o sub2.o -o app.exe
sub1.o: sub1.c
cc -c sub1.c
sub2.o: sub2.c
cc -c sub2.c
C#ではどんなMakefileを書けば分割コンパイルできるのでしょうか。
=== sub1.cs ===
public class Sub1 { public static int Main() { Sub2.Subroutine(); return 0; } }
=== sub2.cs ===
public class Sub2 { public static void Subroutine() { Console.WriteLine("OK"); } }
=== Makefile ===
???
いまのところ、これしか思いつきません。
これでは分割コンパイルになってないので、困っています。
=== Makefile ===
all: app.exe
app.exe: sub1.cs sub2.cs
csc /out:app.exe sub1.cs sub2.cs
かさねがさね、よろしくお願いいたします。