-2

これは実に単純な質問であり、(Windows や Mac ではなく) Linux に関するものです。

C または C++ コンパイラから、「疑わしい」という単語が含まれている必要があり、( -Wmain) を参照する必要がある警告メッセージを生成する方法を教えてください。


(アップデート)

Boann に感謝します - これらの警告のいくつかを受け取りましたが、エラーも受け取りました - エラー: '::main' は 'int' を返さなければなりません。

私がこの質問をする理由は、1 週間前に私のコンパイラ (GCC 4.8.1) が「疑わしい」というこの警告を出し、それが Wmain によって引き起こされたからです。だから私は -Wno-main を置き、警告はなくなり、うまくコンパイルされました。つい最近、それを実際のエラーにしてコンパイルしないと不平を言い始めました。ですから、母船が私の知らないうちにインターネット経由で私のコンパイラをひそかに更新し、それをエラーとして扱うように変更したのではないかと心配しています。(私はおそらく 'int4' を戻り値の型として使用していましたが、これは符号付き long int.

g++ の man ページで参照されている -Wmain があることに注意してください。


g++ 実行可能ファイルのオフセット 557284 (10 進数) で、「「main」の疑わしい宣言について警告する」を見つけました。

4

3 に答える 3

2

その価値のために、

struct suspicious {};

int main(suspicious) {}

g++ -Wall、GCC 4.8.2での出力:

警告: 'int main(suspicious)' の最初の引数は 'int' にする必要があります [-Wmain]

于 2014-08-24T20:23:14.873 に答える
1

gcc 4.8.1のソースをダウンロードし、関連するすべてのファイルで「疑わしい」という単語を検索しました。

何度も発生していますが、私が知る限り、C または C++ ソース ファイルのエラー メッセージに「疑わしい」という単語が含まれる可能性はありません。可能性はありますが、ローカルで変更された可能性は低いです。

エラーメッセージの内容を誤解している可能性はありますか? エラー メッセージを含むログがある場合は、質問を更新して、受け取った正確なメッセージを表示してください。

知らないうちにコンパイラが更新されているのではないかと心配している場合は、コンパイラの実行可能ファイルとそれが呼び出すプログラムのタイムスタンプを確認できます (gcc -vチェックに使用します)。ただし、gcc 自体は自動的に更新されません。他の誰かが管理しているシステムで使用している場合は、自動更新が期待されます。システムを自分で管理している場合は、手動の介入なしでソフトウェアを更新するようにシステムを構成している可能性があります。もしそうなら、それは gcc の問題ではありません。あなたが言っている「母船」のことはわかりません。

于 2014-08-24T22:28:28.233 に答える