0

Linux と Mac の両方でアプリケーションを実行しています。さて、このアプリケーションでは、いくつかのライブラリを別のパスからコピーする必要があります。

Linux の場合、cp ../gccRelease/libMsSipRelease.a ../../VoipAppLinux/lib/

Mac の場合、cp ../DerivedData/MsSipLib/Build/Products/Debug/libMsSipLib.dylib ../../VoipAppLinux/lib/

ご覧のとおり、両方のパスが異なります。さて、私の質問は、make ファイルで#ifdef Linux または #ifdef APPLEを使用できるかどうかです。できれば構文は何ですか?#ifdef が makefile で使用できない場合、どうすればこの問題を解決できますか。

ありがとうございました。

4

1 に答える 1

1

を使用することもできますifdef APPLEが、もっと自動的な方法があります。makefile では、次のようなコマンドで$(shell uname -s)Make に OS が何であるかを伝えます。これを試して:

OS := $(shell uname -s)
ifeq ($(OS),Linux)
MSSIPLIB := ../gccRelease/libMsSipRelease.a
else
MSSIPLIB := ../DerivedData/MsSipLib/Build/Products/Debug/libMsSipLib.dylib
endif

# And later on
cp $(MSSIPLIB) ../../VoipAppLinux/lib/
于 2012-10-04T12:47:33.473 に答える