假設我有兩個源文件 - UndefErr.cpp:有沒有辦法忽略未使用的未定義的引用?
#include <cstdio>
void UndefFunc();
void Func2(){UndefFunc();}
void Func1(){printf("Hi\n");}
而且main.cpp中:
void Func1();
int main(){
Func1();
return 0;
}
當您在UndefErr.cpp看到Func2()
會觸發錯誤,因爲它使用未定義的UndefFunc()
。但主要功能並不在乎Func2()
!根據a relevant question我可以通過一個選項- 解析符號= ignore-in-object-files到鏈接器,但我想要一個有點不同的東西。我需要一個鏈接器來知道未定義的函數是否在某處使用,然後纔會失敗。
之所以問這麼奇怪的問題是,我試圖用一個lwIP,這是很難理解其所有相關的(我只需要TCP/IP),我無法找到互聯網上的教程。所以我想我可以分別編譯大多數(或所有) .c文件,並編寫一些簡單的測試以查看它的功能。但是這種方法在「未定義的引用」上絆腳石,其中大多數可能與用例無關。
看起來好像鏈接器可以「找出」,如果引用甚至需要解決......但一個解決方案是,如果沒有太多的功能,使它很麻煩,你可以將它們存儲在主要。 cpp ...例如'void UndefFunc(){}' – mark
@mark no,在這個項目中有很多功能。而我不知道的主要問題,哪些功能沒有使用,這就是爲什麼我想以某種方式自動化它.. –
我不明白這個問題。鏈接器會在遇到未定義的函數時發出抱怨。 –