私はconst文字列リテラルを修正しようとするCプログラムを持っています。今のところ、私はこれが許されないことを学びました。なぜclang ++はclangとは異なる動作をしますか?前者は後者のシンボルリンクですか?
clang test.c
でコードをコンパイルすると、コンパイラは警告を表示しません。私はclang++ test.c
でそれをコンパイルするときしかし、それは警告を与える:
test.cの:6:15:警告: 'CHAR *' への文字列リテラルからの変換が [-Wdeprecated書き込み可能な-文字列]を推奨されていません CHAR * s = "hello world";
がll `which clang++` lrwxr-xr-x 1 root admin 5 Jan 1 12:34 /usr/bin/[email protected] -> clang
だから私の質問はできるが、それは
clang
のシンボルリンクのことを考えるとclang
とは異なるclang++
どのように動作するかです: ^
問題はclang++
がclang
の単なる記号リンクであることが判明したということです?
あなたは_bash_が 'argv [0]'を見て、動作を変更していることを意味しますか?だから、 'clang ++ 'は' clang'とは違って動作するのは難しいですね。 – RockU
申し訳ありませんが、私は十分に考えていませんでした。 'clang'には難しいコードがあります。ありがとうございました:) – RockU
私はこのテクニックの引用を "珍しく落胆"させることができますか? bashには意味がありませんが、興味があります。 –