मैं हाल ही में हमारे कोड से चेतावनियों को खत्म करने के लिए एक क्रूसेड पर रहा हूं और जीसीसी चेतावनी झंडे (जैसे -Wall
, -Wno-<warning to disable>
, -fdiagnostics-show-option
इत्यादि) से अधिक परिचित हो गया है। हालांकि मैं यह पता लगाने में सक्षम नहीं हूं कि लिंकर चेतावनियों को अक्षम (या यहां तक कि नियंत्रित) कैसे करें। सबसे आम लिंकर चेतावनी है कि मैं हो रही थी निम्न रूप में है:आप जीसीसी लिंकर चेतावनियों को कैसे दबाते हैं?
ld: warning: <some symbol> has different visibility (default) in
<path/to/library.a> and (hidden) in <path/to/my/class.o>
कारण मैं हो रही थी इस वजह थी कि पुस्तकालय मैं उपयोग कर रहा था, जबकि मेरे आवेदन hidden
दृश्यता के साथ बनाया गया है default
दृश्यता का उपयोग कर बनाया गया था। मैंने लाइब्रेरी को hidden
दृश्यता के साथ पुनर्निर्माण करके इसे ठीक कर दिया है।
मेरा प्रश्न हालांकि है: अगर मैं चाहता हूं तो मैं उस चेतावनी को कैसे दबा दूंगा? ऐसा कुछ ऐसा नहीं है जिसे मुझे अब करने की ज़रूरत है कि मैंने यह पता लगाया है कि इसे कैसे ठीक किया जाए, लेकिन मैं अभी भी उत्सुक हूं कि आप उस विशेष चेतावनी को कैसे दबाएंगे - या सामान्य रूप से कोई लिंकर चेतावनियां?
किसी भी सी/सी ++/लिंकर झंडे के लिए -fdiagnostics-show-option
का उपयोग यह नहीं कहता कि यह चेतावनी अन्य कंपाइलर चेतावनियों के साथ कहां से आती है।
एलडी के लिए मैन पेज यह नहीं कहता कि लिंकर चेतावनियों को बंद करने का कोई विकल्प है :( –