Dichiarare e definire una variabile globale ('const Config cfg = {...};' non-const o oggetto non banale) direttamente in un header file causa definizioni duplicate in ogni unità di traduzione; in C++17 si risolve dichiarandola 'inline Config cfg = {...};'.
INLINE_VARIABLE_ODR_VIOLATION
→
Il linker ld analizza le librerie statiche in un singolo passaggio sequenziale da sinistra a destra; se 'libA.a' dipende da 'libB.a' e viceversa, i simboli non vengono risolti a meno di ripetere le librerie o racchiuderle tra '-Wl,--start-group' e '-Wl,--end-group'.
CIRCULAR_LIB_DEPENDENCY
→
Compare quando si linka un programma compilato con il nuovo standard C++11 ABI di GCC con una libreria compilata con la vecchia ABI pre-C++11 (o viceversa), a causa di implementazioni interne incompatibili di std::string e std::list.
CXX11_ABI_MISMATCH
→
L'omologo Visual C++ della violazione della ODR (One Definition Rule): la medesima funzione o variabile globale esportata possiede definizioni multiple non inline in due o più file .obj linkati insieme.
LNK2005_ALREADY_DEFINED
→
Scrivere il corpo di una funzione libera direttamente all'interno di un file header .h senza la parola chiave 'inline' fa sì che ogni file .cpp che include l'header generi una definizione forte del simbolo violando la One Definition Rule (ODR).
MULTIPLE_DEF_MISSING_INLINE
→
Il linker non trova i metadati RTTI (Run-Time Type Information) generati per il dynamic_cast o typeid, solitamente causato dallo stesso problema della vtable o da file oggetto compilati con flag disallineati (-fno-rtti).
UNDEF_REF_TYPEINFO
→
Tipico del compilatore GCC/Clang: compare quando una classe dichiara metodi virtuali non puri ma dimentica di fornire l'implementazione del primo metodo virtuale non-inline (detto 'key function') in alcun file .cpp.
UNDEF_REF_VTABLE
→
Il compilatore C++ applica il name mangling a tutte le funzioni per supportare l'overload; quando si includono funzioni scritte in linguaggio C occorre racchiuderle in 'extern "C" { ... }' per mantenere la convenzione di nomi C non decorata.
EXTERN_C_MISSING
→