[解決済み] 警告: 組み込み関数 'xyz' の非互換な暗黙の宣言
2022-01-28 21:03:08
質問
いくつかのバイナリーをコンパイルする際に、このような警告がいくつも表示されます。
warning: incompatible implicit declaration of built-in function ‘strcpy’
warning: incompatible implicit declaration of built-in function ‘strlen’
warning: incompatible implicit declaration of built-in function ‘exit’
これを解決するために、私は
#include <stdlib.h>
をこの警告に関連する C ファイルの先頭に追加し、さらに以下のフラグでコンパイルします。
CFLAGS = -fno-builtin-exit -fno-builtin-strcat -fno-builtin-strncat -fno-builtin-strcpy -fno-builtin-strlen -fno-builtin-calloc
GCC 4.1.2を使っています。
$ gcc --version
gcc (GCC) 4.1.2 20080704
これらの警告を解決するには、どうしたらよいですか?
どのように解決するのですか?
C言語では、事前に宣言されていない関数を使用すると、その関数を暗黙のうちに宣言したことになります。暗黙の宣言では、戻り値の型は
int
私の記憶が正しければ さて、GCCにはいくつかの標準的な関数について組み込みの定義があります。 暗黙の宣言が組み込みの定義と一致しない場合、この警告が出ます。
この問題を解決するには、関数を使用する前に宣言する必要があります。通常、適切なヘッダーを含めることによってこれを行います。私は
-fno-builtin-*
フラグを使用します。
の代わりに stdlib.h を試してみてください。
#include <string.h>
そこで
strcpy
と
strncpy
が定義されており、少なくとも
strcpy
(2) の man ページを参照してください。
は、その
exit
関数が定義されています。
stdlib.h
とはいえ、そこで何が起こっているのかはわからない。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】単項演算子「*」の型が無効(「int」がある)C言語でのエラー
-
[解決済み】「無効なイニシャライザー」と表示されるのですが、何が間違っているのでしょうか?
-
[解決済み] テスト
-
[解決済み】式は変更可能なL値でなければならない
-
[解決済み] [Solved] .Cファイルをコンパイルしています。アーキテクチャ x86_64 の未定義シンボル
-
[解決済み】インクリメントオペランドとして lvalue が必要です。
-
[解決済み] Cプログラムで「配列の添え字が整数でない」。
-
[解決済み】シンプルなC言語のscanfが機能しない?重複
-
[解決済み】c - 警告:関数 'printf'の暗黙の宣言
-
[解決済み】whileループの時間複雑性(Big O)はどうやったらわかるの?