Hi,
bei mir meckert aktuell der Compiler, weil er stets eine Funktion angeblich nicht finden kann.
Folgendes Szenario: [Header A.hpp]
|
C-/C++-Quelltext
|
1
2
3
4
5
|
namespace awesome{
void function_a();
void function_b();
void function_c();
}
|
[Source A.cpp]
|
C-/C++-Quelltext
|
1
2
3
4
5
|
namespace awesome{
void function_a(){ //... }
void function_b(){ //... }
void function_c(){ //... }
}
|
An dieser Stelle beschwert sich der Linker, dass er "function_c" nicht finden kann,
obwohl die Signatur von Deklaration und Definition übereinstimmen und namespaces gleich sind.
Hier ist mir das sonderbare Verhalten des Linkers aufgefallen:
1. Kommentiere function_c in der Source-Datei aus.
2. Definiere function_c im Header
3. Entferne Definition im Header
4. Entkommentiere function_c in der Source-Datei.
5. Et voilá, der Linker findet das Symbol.
Ist jemand schonmal auf diesen Bug gestoßen und weiß wie man diesen umgehen kann?
Sind da ev. schon Updates oder so online?
LG Julien
EDIT:
Ähnliches Verhalten lässt sich auch mit Methoden beobachten.