Ceci est une ancienne révision du document !
Table des matières
hidden symbol `atexit' in /usr/lib/x86_64-linux-gnu/libc_nonshared.a(atexit.oS) is referenced by DSO
Erreur survenant avec clang
et non gcc
.
Message complet :
/usr/bin/ld: XXX: hidden symbol `atexit' in /usr/lib/x86_64-linux-gnu/libc_nonshared.a(atexit.oS) is referenced by DSO /usr/bin/ld: final link failed: Bad value clang: error: linker command failed with exit code 1 (use -v to see invocation)
Solution : Ajouter -fno-use-cxa-atexit
à CXXFLAGS
.
error: request for member 'XXXX' in 'XXXX', which is of non-class type ‘XXXX()’
Soit une classe CContexte
avec un constructeur vide. Lors de la déclaration d'une instance (de nom projet
) dans la pile, il pourrait être naturel d'écrire CContexte projet ();
. Ne pas le faire, en effet, dans ce cas, g++
considère ici la déclaration d'un prototype d'une fonction plutôt que la déclaration d'une variable avec son constructeur vide. La bonne solution est d'écrire CContexte projet;
.
error: expected class-name before '{' token
Référence circulaire lors de l'inclusion de header, y compris s'ils sont protégés par le système des #ifndef #define
.
error: weak declaration of 'XXXX' must be public
Ajouter l'attribut extern
à la variable globale.
// __attribute__ ((weak)) const unsigned short STRUCT_BUF_SAVE_SIZE = 3000; __attribute__ ((weak)) extern const unsigned short STRUCT_BUF_SAVE_SIZE = 3000;
error: there are no arguments to 'XXXX' that depend on a template parameter, so a declaration of 'XXXX' must be available [-fpermissive]
Ne pas utiliser XXXX()
mais this->XXXX()
.