मैं कोडबेज में अप्रयुक्त फ़ंक्शंस ढूंढना चाहता हूं - जिसमें संकलन इकाइयों समेत। मैं अपने कंपाइलर के रूप में जीसीसी का उपयोग कर रहा हूँ।अप्रयुक्त कार्यों के बारे में चेतावनी देने का कोई तरीका है?
foo.c
(मान उचित foo.h
):
void foo() {
....
}
void bar() {
....
}
main.c
:
यहाँ एक उदाहरण है
#include <stdio.h>
#include "foo.h"
int main(void) {
bar();
return 0;
}
इस उदाहरण में, मैं के बारे में foo()
नहीं किया जा रहा चेतावनी दी प्राप्त करना चाहते हैं उपयोग किया गया।
-Wunused-function
जीसीसी विकल्प नहीं है:
-Wunused-function
चेतावनी दें जब भी एक स्थिर समारोह घोषित नहीं बल्कि परिभाषित या एक गैर इनलाइन स्थिर समारोह अप्रयुक्त है। यह चेतावनी द्वारा सक्षम है -Wall।
लेकिन यह केवल स्थिर कार्यों के लिए है - यह ऊपर दिए गए उदाहरण पर चेतावनी नहीं देगा।
मैं उपकरण/स्क्रिप्ट/अन्य कंपाइलर्स के सुझाव भी स्वीकार करूंगा जो मेरे लिए यह कर सकते हैं - हालांकि यदि संभव हो तो मैं gcc
के साथ रहना पसंद करूंगा।
डिफ़ॉल्ट कारण से अप्रयुक्त गैर स्थैतिक कार्यों पर चेतावनी न देने का एक अच्छा कारण है। एक गैर स्थैतिक फ़ंक्शन सार्वजनिक इंटरफ़ेस का हिस्सा है, क्योंकि आप आसानी से एक .a या .so लाइब्रेरी उत्पन्न करने के लिए लिंकर के माध्यम से एक gcc- जेनरेट की गई .o फ़ाइल को खिला सकते हैं जिसमें सभी गैर स्थैतिक फ़ंक्शंस जो भी लिंक पर उपलब्ध कराए जाते हैं पुस्तकालय के साथ। उस ने कहा, यह अभी भी एक अच्छा सवाल है, जो मुझे उम्मीद है कि एक उपयोगी जवाब होगा। –
बिल्कुल, यह डिफ़ॉल्ट रूप से नहीं होना चाहिए। फिर भी, यदि सुविधा मौजूद है तो मैं इसे अंतिम लिंक समय पर चालू करने में सक्षम होना चाहता हूं :) –
प्रासंगिक http: //gcc.gnu।संगठन/एमएल/जीसीसी-सहायता/2003-08/msg00072.html? –