warning: defined but not used
-
Ich bekomme folgende Warnung:
src\/laserpulsefunctions.h:282: warning: 'std::vector<std::complex<double>, std::allocator<std::complex<double> > > laser::pulse::interpolateWavelengthDataToFrequencyAxis(const std::vector<double, std::allocator<double> >&, const std::vector<std::complex<double>, std::allocator<std::complex<double> > >&, const std::vector<double, std::allocator<double> >&, double)' defined but not used
abgekürzt:
src\/laserpulsefunctions.h:282: warning: laser::pulse::interpolateWavelengthDataToFrequencyAxis(...) defined but not used
stimmt natürlich nicht. Diese Funktion wir static in laserpulsefunctions.h definiert und diese in laserpulse.cpp geladen und dort benutzt.
Trotzdem bekomme ich diese Warnung. Wie werde ich sie wieder los?
-
Die Warnung wird sehr wahrscheinlich stimmen, Compiler haben nur selten unrecht. Wenn du sagst, dass du es static in einer Headerdatei definierst, würde ich mal ganz stark darauf tippen, dass du
1. Keine Ahnung hast, was das static da bedeutet
2. Deklaration und Definition nicht sauber trennst
3. Den Header noch woanders einbindest, wo es nicht benutzt wird.
Und wie schon gesagt: In diesem Fall hätte der Compiler auch Recht.
-
SeppJ schrieb:
Die Warnung wird sehr wahrscheinlich stimmen, Compiler haben nur selten unrecht. Wenn du sagst, dass du es static in einer Headerdatei definierst, würde ich mal ganz stark darauf tippen, dass du
1. Keine Ahnung hast, was das static da bedeutet
2. Deklaration und Definition nicht sauber trennst
3. Den Header noch woanders einbindest, wo es nicht benutzt wird.
Und wie schon gesagt: In diesem Fall hätte der Compiler auch Recht.ok, ich dann heißt static hier also, das ich überall dort wo die Funktion nicht benutzt wird diese Fehlermeldung bekomme.
Deklaration und Definition sind bei mir dasselbe. Ich könnte natürlich eine Deklaration oberhalb hinschreiben - aber es ist natürlich trotzdem alles in der header Datei.Wenn ich es nicht static mache, dann bekomme ich die Fehlermeldung das es mehrfach definiert wurde. Wie müsste ich denn korrekterweise vorgehen?
-
inline keyword zur einhaltung der ODR