最近、gcc 6.2.1コンパイラを入手して、debianテストをアップグレードした後でコードのコンパイルに問題が発生しました。gccが-O2のない関数をインライン化できない
がinline int func(void) {
return 0;
}
int main (int argc, char **argv) {
func();
}
コードは次のようにないコンパイルん:私はこの単純な例にそれを煮詰めてきた
undefined reference to 'func'
gcc -o exec code.C# gcc 6.2.1
同じホスト上でgcc 4.8、4.9、5で試して失敗しました。 それは私が追加した場合、コンパイルん:
gcc -o exec code.c -O2 # gcc 6.2.1
を、私はそれが-O2フラグではなくせずに動作します理由として、本当に興味が、私はこれが動作するように期待しますか?
「コードは*コンパイルしない*」*とはどういう意味ですか?どのようなエラーが出ますか?あなたの質問を編集して、コンパイラからの完全で完全な編集されていない出力を含めてください。 –
インラインで何回繰り返す必要がありますか...真剣に... – DeiDei
'func'の' return'文がないので、あなたのプログラムはコンパイルされません。関数。コンパイラからのエラーメッセージはかなり明確です。 –