- ベストアンサー
ロケールSJISではmakefileの一文の改行としてのバックスラッシュが認識されない?
Linux CentOS5、ロケールSJISの環境で makefileの一文の改行としてのバックスラッシュが そのように解釈されないのか makefileを実行すると 「gcc: \: そのようなファイルやディレクトリはありません」 というエラーがでます。 具体的には ***ここから***test.mak SHELL=/bin/csh INCLUDE_OBJ=\ $(MAK_PATH)/H010.mak \ $(INC_PATH)/COM00C.h 略 ./test.o: ./test.c $(INCLUDE_OBJ) gcc -I/usr/include ./test.c ***ここまで*** という書き方をしてます。 cshです。 ロケールがUTF8のときは問題なく実行できたのです。 回避策をご存知の方がいらっしゃれば 是非ご教示お願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
細かい話をすると長くなってしまうのですが、 質問者さんがshiftjisのテキストでバックスラッシュとしてつかっている キャラクタをシステムが円マークとして解釈していて、そのために makeが行継続の印が見つけられないのかもしれません。 試しに、shiftjisでバックスラッシュと思っているキャラクタを入れた 短いテキストファイルを作って、以下のことを試してみてください。 bash-3.2$ od -t x1 yen.txt 0000000 5c 0a 0000002 bash-3.2$ iconv -f sjis -t utf-8 yen.txt | od -t x1 0000000 c2 a5 0a 0000002 bash-3.2$ iconv -f euc-jp -t utf-8 yen.txt | od -t x1 0000000 5c 0a 0000002 たぶん上のような結果になるのではないかと思います。
その他の回答 (1)
- Wr5
- ベストアンサー率53% (2173/4061)
Shift-JISの時とUTF-8の時で、改行コードが違う。 ということはありませんか?
補足
返信ありがとうございます LFで、一緒なのです。
補足
返信ありがとうございます。 はい、そうでした。。。 これはどうしようもないということで、 結局バックスラ改行のところを一行にする変換プログラムを作って 回避しました。。 Perl様様です。 おふたかたありがとうございました。補足遅くなり申し訳ありませんでした。