L'inclusione delle librerie parallele Intel Threading Building Blocks (TBB) o algoritmi paralleli C++17 ('std::execution::par') su Linux richiede di specificare il flag '-ltbb' in fase di link.
UNDEF_REF_TBB
→
Dichiarare una variabile statica all'interno di una classe ('static int count;') ne riserva il nome ma non la memoria; se non viene definita all'esterno ('int MyClass::count = 0;') o dichiarata 'inline static' (da C++17), il linker non troverà l'allocazione.
STATIC_MEMBER_UNDEF_REF
→
I template C++ devono essere istanziati dal compilatore al momento dell'uso: posizionare la definizione del template in un file .cpp separato impedisce agli altri moduli di istanziarlo a meno di usare l'esplicita istanziazione.
TEMPLATE_CPP_UNDEF_REF
→
Il linker MSVC fallisce la risoluzione del nome decorato (name mangling): la firma del metodo dichiarata nel file .h differisce nei tipi, nei qualificatori 'const' o nella convenzione di chiamata dall'implementazione nel file .cpp.
LNK2019_MANGLED
→
Quando si compila con '-fvisibility=hidden', i simboli RTTI (typeinfo) delle classi non esportate esplicitamente con '__attribute__((visibility("default")))' non vengono unificati tra eseguibile e .so, facendo fallire silenziosamente tutti i dynamic_cast polimorfici.
VISIBILITY_HIDDEN_TYPEINFO
→
Se una classe di eccezione personalizzata ha visibilità nascosta ('-fvisibility=hidden'), la tabella RTTI non viene unificata tra librerie .so differenti: il blocco 'catch (const MyException&)' non riconosce l'eccezione lanciata e il programma abortisce con std::terminate.
HIDDEN_VISIBILITY_INLINE_VTABLE
→