簡體   English   中英

如何讓gcc警告未知功能?

[英]How to make gcc warn about unknown functions?

考慮以下代碼:

int function()
{
  int a = 1 ;
  int b = helper(&a);
  return b ;
}

int main()
{
  function();
  return 0 ;
}

盡管事實上尚未聲明名為“helper”的函數,但此代碼段使用gcc編譯成目標代碼而沒有問題。 我知道鏈接器應該捕獲這個,但是我已經看到了一旦包含正確的頭文件(包含函數聲明)而解決的模糊錯誤 ,盡管鏈接器和編譯器沒有產生任何錯誤。

有許多gcc警告似乎是相關的,但實際上並沒有實現我想要的:-Wmissing-prototypes,-Wmissing-declarations和-Wstrict-prototypes。 不幸的是,當定義全局函數時,這些警告僅限於缺少原型,我對引用全局函數時缺少原型的警告感興趣。

任何人都可以建議替代品嗎?謝謝。

你想要-Wimplicit-function-declaration警告。

就個人而言,我更喜歡使用-Wall -Wextra編譯我的代碼。

使用-Wl,--no-undefined來確保強制undefined function錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM