मान लीजिए मैं दो स्रोत फ़ाइलें है - 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 के अनुसार मैं एक विकल्प - अनन्य-प्रतीकों = अनदेखा-इन-ऑब्जेक्ट-फाइल लिंकर को पास कर सकता हूं, लेकिन मुझे एक अलग चीज़ चाहिए। मुझे यह जानने के लिए एक लिंकर चाहिए कि क्या अपरिभाषित कार्य कहीं भी उपयोग किए जाते हैं, और केवल तब विफल हो जाते हैं।
इस तरह के एक अजीब सवाल पूछने के लिए कारण यह है कि मैं एक lwIP उपयोग करने के लिए कोशिश कर रहा हूँ, और यह इसकी निर्भरता के सभी समझना कठिन है (मैं केवल टीसीपी/आईपी की जरूरत है), और मैं नहीं मिल सकता है इंटरनेट पर ट्यूटोरियल। तो मैंने सोचा कि मैं सबसे अधिक (या सभी) को .c फ़ाइलों को अलग से संकलित कर सकता हूं, और यह देखने के लिए कुछ सरल परीक्षण लिख सकता है कि यह क्या करता है। लेकिन यह दृष्टिकोण "अपरिभाषित संदर्भ" पर ठोकर खा रहा है, उनमें से अधिकतर शायद उपयोग के लिए अप्रासंगिक हैं।
ऐसा प्रतीत होता है कि लिंकर केवल "पता लगाना" कर सकता है अगर संदर्भों को हल करने की भी आवश्यकता होती है ... एक समाधान हालांकि अगर यह बोझिल बनाने के लिए बहुत सारे फ़ंक्शन नहीं हैं तो आप उन्हें मुख्य रूप से बाहर निकाल सकते हैं। सीपीपी ... उदाहरण के लिए परियोजना में बहुत सारे कार्यों में 'UndoidFunc() {} ' – mark
@mark no शून्य। और मुख्य समस्या जो मुझे नहीं पता, जो फ़ंक्शंस का उपयोग नहीं किया जाता है, यही कारण है कि मैं इसे किसी भी तरह से स्वचालित करना चाहता हूं .. –
मुझे प्रश्न समझ में नहीं आता है। लिंकर शिकायत करने जा रहा है अगर यह एक अपरिभाषित समारोह का सामना करता है। –