Articles of gcc

Erreur d’installation de PCRE

J’essaie d’installer PCRE sur mon serveur Ubuntu 11.10. Lorsque je lance la commande “make”, j’obtiens une sortie vraiment longue qui se termine toujours par cette erreur: libtool: link: ( cd “.libs” && rm -f “libpcreposix.la” && ln -s “../libpcreposix.la” “libpcreposix.la” ) source=’pcrecpp.cc’ object=’pcrecpp.lo’ libtool=yes \ DEPDIR=.deps depmode=none /bin/bash ./depcomp \ /bin/bash ./libtool –tag=CXX –mode=comstack -DHAVE_CONFIG_H […]

Pourquoi configure indique-t-il qu’aucun compilateur C n’a été trouvé lorsque GCC est installé?

J’essaie de faire Sphinx à partir de sources sur un CentOS 6 VPS 32 bits. Lorsque je lance cette commande: ./configure –prefix=/usr/local/sphinx Je reçois cette erreur: checking build environment ————————– checking for a BSD-compatible install… /usr/bin/install -c checking whether build environment is sane… yes checking for a thread-safe mkdir -p… /bin/mkdir -p checking for gawk… […]

Renvoi d’une structure contenant un tableau

Le code simple suivant segfaults sous gcc 4.4.4 #include typedef struct Foo Foo; struct Foo { char f[25]; }; Foo foo(){ Foo f = {“Hello, World!”}; return f; } int main(){ printf(“%s\n”, foo().f); } Changer la dernière ligne à Foo f = foo(); printf(“%s\n”, ff); Fonctionne bien Les deux versions fonctionnent lorsqu’elles sont compilées avec […]

Quelle est la différence entre les niveaux d’optimisation gcc?

Quelle est la différence entre différents niveaux d’optimisation dans GCC? En supposant que je ne me soucie pas d’avoir des hooks de débogage, pourquoi ne pas utiliser le plus haut niveau d’optimisation disponible pour moi? un niveau d’optimisation plus élevé génère-t-il nécessairement un programme plus rapide?

Débarrassez-vous de “gcc – / usr / bin / ld: avertissement lib non trouvé”

J’ai l’avertissement suivant pendant le lien: /usr/bin/ld: warning: libxxx.so.6, needed by /a/b/c/libyyy.so, not found (try using -rpath or -rpath-link) La définition de la variable d’environnement LD_LIBRARY_PATH = path_to_libxxx.so.6 fait taire l’avertissement (l’ajout de l’option -Lpath_to_libxxx.so.6 n’aide pas). J’ai un serveur de compilation séparé, où le binary résultant est uniquement compilé. Le binary est exécuté sur […]

Les macros probables / improbables peuvent-elles être utilisées dans le code de l’espace utilisateur?

Je suis tombé sur ces 2 macros dans le code du kernel Linux. Je sais que ce sont des instructions pour le compilateur (gcc) pour les optimisations en cas de twigment. Ma question est la suivante: pouvons-nous utiliser ces macros dans le code de l’espace utilisateur? Est-ce que cela donnera une optimisation? Tout exemple sera […]

Comment spécifier la version de la bibliothèque à utiliser au moment du lien?

Question suivante Comment les applications se résolvent-elles en différentes versions de bibliothèques partagées au moment de l’exécution? , Je me demandais comment spécifier sur la ligne de commande du lien quelle version de la bibliothèque utiliser? Disons que j’ai libmy.so.1.0 libmy.so.1 -> libmy.so.1.0 libmy.so.2.0 libmy.so.2 -> libmy.so.2.0 libmy.so -> libmy.so.2 La manière habituelle de spécifier […]

Symboles de débogage gcc (-g flag) vs option -rdynamic de l’éditeur de liens

glibc fournit backtrace() et backtrace_symbols() pour obtenir la trace de la stack d’un programme en cours d’exécution. Mais pour que cela fonctionne, le programme doit être construit avec le drapeau -rdynamic l’éditeur de -rdynamic . Quelle est la différence entre l’ -g transmise à l’ -rdynamic de gcc et celle de linker? Pour un exemple […]

Existe-t-il un moyen pour que gcc produise des fichiers binarys bruts?

Existe-t-il un ensemble d’options de ligne de commande permettant de convaincre gcc de produire un fichier binary plat à partir d’un fichier source autonome? Par exemple, supposons que le contenu de foo.c soit static int f(int x) { int y = x*x; return y+2; } Aucune référence externe, rien à exporter vers l’éditeur de liens. […]

Ldd hiérarchique (1)

En raison de l’utilisation de Gentoo, il arrive souvent qu’après une mise à jour les programmes soient liés à d’anciennes versions de bibliothèques. Normalement, revdep-rebuild aide à résoudre ce problème, mais cette fois, il s’agit d’une dépendance à une bibliothèque python, et python-updater ne le python-updater pas. Existe-t-il une variante “hiérarchique” de ldd qui me […]