Articles of gcc

Existe-t-il un moyen simple de faire en sorte que gcc omit crtbegin.o / crtend.o?

Outre l’utilisation de -nostdlib et la liaison de crt1.o -lc -lgcc vous-même, existe-t-il un moyen facile d’empêcher gcc de lier crtbegin[S].o et crtend[S].o ? Ces fichiers ne sont pas très volumineux, mais je joue avec la création de petits binarys et je voudrais supprimer le code de support C ++ inutile qui n’est pas nécessaire […]

Drapeau d’optimisation gcc -O4

Quelle est la signification de l’indicateur d’optimisation -O4 dans gcc (3.2.3)? Quelle est la différence avec O3? Quand utiliseriez-vous l’un contre l’autre? Les pages de manuel ne mentionnent que O, O0-3, Os, aucun mot du mystérieux O4. Merci!

liens libtool avec la version 32 bits de libstdc ++. so sur une plate-forme cible 64 bits lorsque plusieurs versions de gcc sont installées

Tout d’abord, je voudrais vous faire savoir que c’est mon premier article sur StackOverflow, alors j’espère que je ne me ridiculiserai pas en posant une question très stupide. Je suis en train de goûter à ce problème depuis quelques jours maintenant et je n’ai pas trouvé de réponse à ce jour. Voici la situation: Je […]

Pourquoi C99 se plaint-il des tailles de stockage?

Voici un code que je comstack sous Linux: #include int main() { struct ifreq ifr; } gcc test.c va bien. gcc -std=gnu99 test.c est gcc -std=gnu99 test.c . gcc -std=c99 test.c échoue avec l’erreur suivante: test.c: In function ‘main’: test.c:4:16: error: storage size of ‘ifr’ isn’t known Quelle est la différence avec C99 qui n’aime […]

Comment inclure la bibliothèque C nécessaire en utilisant gcc?

J’essaie de comstackr l’exemple simple C de ce tutoriel sur Ubuntu en utilisant gcc. Que dois-je utiliser comme argument pour que gcc inclue les bibliothèques nécessaires pour #include ?

Tableau de liaison de processus et tableau de décalage global

Je lis cet article sur PLT (Process Linkage Table) et GOT (Global Offset Table) . Bien que le but de PLT soit clair pour moi, je suis toujours confus au sujet de GOT. Ce que j’ai compris de l’article, c’est que GOT n’est nécessaire que pour les variables déclarées comme extern dans une bibliothèque partagée. […]

Numéros de version dans les fichiers objects partagés

Je construis un fichier object partagé à partir d’un groupe de fichiers source C ++ utilisant GCC. Tous les exemples de tutoriels sur la création de fichiers .so montrent le fichier créé avec un numéro de version après le suffixe .so . Par exemple: gcc -shared -Wl,-soname,libmean.so.1 -o libmean.so.1.0.1 calc_mean.o Cela produirait le fichier .so […]

Option gcc -mpreferred-stack-boundary

Je veux savoir comment utiliser l’ -mpreferred-stack-boundary lors de la compilation dans le compilateur GNU. J’ai vérifié la documentation mais l’explication est perdue pour moi. Quelqu’un pourrait-il l’expliquer s’il vous plaît?

Problème avec la construction du projet CMake

J’ai le problème suivant. Sur mon Ubuntu, j’essaie de construire un projet et de recevoir les erreurs de l’éditeur de liens suivantes: /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/libboost_thread.a(once.o): undefined reference to symbol ‘pthread_once@@GLIBC_2.2.5’ /lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make[2]: *** [sunprint] Error 1 make[1]: *** [CMakeFiles/sunprint.dir/all] Error 2 […]

Relier les problèmes dus aux symboles avec abi :: cxx11?

Nous avons récemment attrapé un rapport à cause de GCC 5.1, libstdc ++ et Dual ABI . Il semble que Clang ne soit pas au courant des changements d’espace de noms en ligne de GCC , il génère donc du code basé sur un ensemble d’espaces de noms ou de symboles, tandis que GCC utilise […]