リリース、デバッグ、共有ライブラリ、実行可能ファイルなど、さまざまなバージョンにコンパイルする C++ プロジェクトがあり、それぞれに異なるコンパイラ フラグが設定されています。Make の代わりに Jam を試しています。Jam の方がシンプルなシステムに見えるからです。
ジャムはこれができますか?主な問題は、常に .o ファイルをソース ファイルと同じフォルダーに配置するため、複数のバージョンをビルドするときにそれらを上書きすることです。
アップデート
うまくいくと思われる解決策を見つけました。このファイルを使用して、ライブラリまたは実行可能ファイルのデバッグおよびリリース構成をビルドできます。
リリース ライブラリをビルドするコマンド:
jam -s config=lib -s release=1
のみを入力jam
すると、デバッグ実行可能ファイルがビルドされます。Jamfile は次のとおりです。
FILES =
main.cpp
;
BASENAME = steve ;
OBJ = obj ;
if $(release)
{
OBJ = $(OBJ)r ;
}
else
{
DEFINES += DEBUG ;
OBJ = $(OBJ)d ;
}
if $(config) = lib
{
OBJ = $(OBJ)_lib ;
OUTFILE = lib$(BASENAME).so ;
DEFINES += SHARED_LIBRARY ;
LINKFLAGS +=
-shared -Wl,-soname,$(OUTFILE) -fvisibility=hidden -fPICS
;
}
else
{
OUTFILE = $(BASENAME) ;
}
LOCATE_TARGET = $(OBJ) ;
MkDir $(LOCATE_TARGET) ;
Main $(OUTFILE) : $(FILES) ;