Outils pour utilisateurs

Outils du site


probleme:compilation:c

Ceci est une ancienne révision du document !


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().

No arguments that depend on a template parameter Archive

probleme/compilation/c.1521934853.txt.gz · Dernière modification : 2018/03/25 00:40 de root