同僚はUbuntuを使用し、openSUSEを使用しています。同じmakefileを使用して同じソースコードをコンパイルしました。環境は正常に機能しますが、同僚は常に認識できない-e
オプションを出力できません。makefileをチェックし、echo
コマンド使用-e
オプションのみを見つけます。
Ubuntuのエコー機能は他の人とは異なりますか?
+++++ makefileの更新、エコーは次のように定義します。
TOOLSDIR =
ECHO = $(TOOLSDIR)echo -e
$(TOOLSDIR)はツールのdirです。このmakeファイルは、LinuxまたはCYGWINがある場合、コンパイル環境を検出できます。
$(TOOLSDIR)
が空の場合、Windowsの場合、次のようにWIN32バージョンのエコーツールディレクトリに移動します。
TOOLSDIR = $(subst /,\,$(MAKEDIR)/tools/WIN32/)
makeを実行すると、ubuntuは次のように出力します。
致命的なエラー:L3900U:認識されないオプション'-e'。
ただし、openSUSEにはこのエラーはありません
+++++echo-eの更新
私はubuntuでテストmakefileを書きます
all:
echo -e hello
出力:
エコー-eこんにちは
こんにちは
+++++ openSUE(12.1)およびubuntu(12.04)でのmakefileテストの更新
all:
echo -e "hello 1"
echo -e hello 2
echo -e he\nllo3
echo -e "he\nllo4"
- opensuseの場合、出力は次のとおりです。
echo -e "hello 1"
こんにちは1
echo -e hello 2
こんにちは2
echo -e he \ nllo3
henllo3
echo -e "he \ nllo4"
彼
llo4
- ubuntuでは、出力は次のとおりです。
echo -e "hello 1"
-e hello 1
echo -e hello 2
こんにちは2
echo -e he \ nllo3
henllo3
echo -e "he \ nllo4"
-e彼
llo4
その間、私はubuntuでテストし、エコーなし-e
で、結果はopenSUSEの場合と同じで、エコーあり-e