1
私はUnix環境で、次のような単純なCPPファイルを持っています。どのようにprintfのために事前に定義されたCFLAGS
はしかし、私はg++ -Wall -g -DHELLO
を使用してプログラムをコンパイルし、私は警告と言っ取得し、その後、HELLO="HELLO"
をエクスポートしないとき:私はプログラムを実行すると
warning: format ‘%s’ expects argument of type ‘char*’, but argument 2 has type ‘int’ [-Wformat=] printf("HELLO = %s \n", HELLO);
、私はセグメンテーションフォールトを取得します。
コードに-DHELLO
を印刷するにはどうすればよいですか?
'-DHELLO'は1 'ハローの#define、それゆえあなたは不正なコードを取得し'と同等です。 -DHELLO = "hello" ''を実行する必要があります(プリプロセッサ' cpp': 'echo' HELLO '| cpp -DHELLO'を直接呼び出すことで確認できます) – myaut