私はライブラリlibmya.soとライブラリlibmyb.soを持っています。 libmyb.soの関数は、libmya.soの関数に依存します。また、私はlibmyb.soに依存する実行可能なmyexeを持っています。これらのライブラリを作るときに、ルールに-lオプションを付けるべきですか?リンクするときにライブラリの依存関係はどのように機能するのですか?
それは1)であるべき:
libmya.so: $(OBJ_FILES)
$(CPP) $(LDFLAGS) -o [email protected] $^
libmyb.so: $(OBJ_FILES)
$(CPP) $(LDFLAGS) $(LIBS) -o [email protected] $^ -lmya
myexe: $(OBJ_FILES)
$(CPP) $(LDFLAGS) $(LIBS) -o [email protected] $^ -lmyb
または2)
libmya.so: $(OBJ_FILES)
$(CPP) $(LDFLAGS) -o [email protected] $^
libmyb.so: $(OBJ_FILES)
$(CPP) $(LDFLAGS) $(LIBS) -o [email protected] $^
myexe: $(OBJ_FILES)
$(CPP) $(LDFLAGS) $(LIBS) -o [email protected] $^ -lmya -lmyb
またはいくつかの他のコンボ?
なぜCPPを使用していますか?それは従来のCプリプロセッサです。 CXXは従来からC++コンパイラです。 –
@Fred Nurk:私がここに来たときのようでした!先端に感謝します。 – MattSmith
あなたはどのオペレーティングシステムを使用していますか?あなたがファイルを扱っているので、私はUnixを想定していますが、明確にすることは害ではありません。 – mgiuca