[解決済み】GCC Cコードで静的宣言が非静的宣言に続くことを解決するには?
2022-01-25 23:24:42
質問
同じCファイルを、異なるバージョンのccを搭載した2台のマシンでコンパイルしようとしています。
gcc バージョン 3.2.3 では
warning: 'foo' was declared implicitly 'extern' and later 'static'
gcc バージョン 4.1.2 は以下の通りです。
error: static declaration of 'foo' follows non-static declaration
どちらもCFLAGSは同じです。gcc 4.1.2 を gcc 3.2.3 のように動作させたい、つまり、このエラーを単なる警告に変えるようなオプションを見つけたいのです。
解決方法は?
エラーメッセージの内容からすると、むしろソースコードを修正した方が良さそうです。コンパイラは、宣言の違いについて文句を言っています。
void foo(int i);
...
void foo(double d) {
...
}
で、これは有効なCコードではないので、コンパイラは文句を言います。
おそらく、あなたの問題は、関数が初めて使われるときに利用可能なプロトタイプがなく、コンパイラが暗黙のうちにスタティックでないプロトタイプを作成することでしょう。もしそうなら、最初に使われる前にどこかにプロトタイプを追加することが解決策になります。
関連
-
[解決済み】GCC Cコードで静的宣言が非静的宣言に続くことを解決するには?
-
[解決済み】警告。この関数ではXが初期化されていない状態で使用される可能性があります。
-
[解決済み】C言語で浮動小数点例外(コアダンプ)発生
-
[解決済み】Cygwin - Makefile-error: ターゲット `main.o' のレシピに失敗しました。
-
[解決済み】C 未知の型名「my_structure」。
-
[解決済み】C言語でint64_t型を表示する方法
-
[解決済み】Makefile:1: ***セパレータがありません。停止します。
-
[解決済み] '{'トークンの前に期待される式
-
[解決済み】.axfファイルとは何ですか?
-
[解決済み] gccでC/C++のソースからアセンブラ出力を得るにはどうしたらいいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Valgrind が "Invalid write of size 8" で文句を言う。
-
[解決済み】ポインタと整数の比較で警告が出る
-
[解決済み】「構造体でもユニオンでもないものにメンバー'*******'を要求する」とはどういう意味ですか?
-
[解決済み] struct has no member named
-
[解決済み】ヒープ割り当てで初期化されていない値が作成された
-
[解決済み] エラー:整数が期待されるところで集約値が使用された
-
[解決済み] char pointers: 'char*' から 'char' への無効な変換?
-
[解決済み】スタックスマッシュを検出しました
-
[解決済み】Makefile:1: ***セパレータがありません。停止します。
-
[解決済み】c - 警告:関数 'printf'の暗黙の宣言