GCC est la collection de compilateurs GNU. Il s'agit du compilateur standard de facto pour C, C ++, Go, Fortran et Ada sous Linux et prend également en charge de nombreux autres langages et plates-formes. Outre le compilateur, GCC dispose d'une chaîne d'outils (libc, libstdc ++, objdump, nm, etc.) qui sont largement utilisées sur plusieurs plates-formes et systèmes.

gcc...

J'essaie de passer en revue un projet C / C ++ qui traite fortement des macros et des macros de type fonction. Ce que je voudrais faire, c'est remplacer les macros define et fonctionnelles par leur remplacement. Par exemple, j'ai ce fichier: #include <iostream> #define SUM(a,b,c,d) a+b+c+d using na....
4 mai 2020 à 16:30
J'ai un programme C ++ où je dois faire pivoter le tableau dans le sens des aiguilles d'une montre en fonction du nombre d'éléments à faire tourner (x) Par exemple, si le tableau d'entrée est [1,2,3,4,5], étant donné que 2 éléments ( noté x) doit tourner. le tableau de sortie doit être [3,4,5,1,2]. ....
30 mars 2020 à 20:24
J'essaye d'écrire une fonction qui vérifie si une entrée est une double valeur valide. depuis que j'ai récemment appris la fonctionnalité switch / case / default, je voulais l'utiliser pour résoudre le problème switch(carrier[i]){ case ("+" || "-") : //case 1 if(kvcase == closed....
6 mars 2020 à 18:52
Pourquoi gcc ignore-t-il ces protections d'en-tête dans ce programme de test simple? Le fichier d'en-tête est: #ifndef MYHEADER_H #define MYHEADER_H #warning "header declared" int some_int=0; #endif Et les deux fichiers .c sont: main.c: #include "header.h" int main () { return some_int; } ....
6 mars 2020 à 11:51
J'essaie actuellement de compiler la dernière version de Bazel (2.2.0) à partir des sources sur un Raspberry Pi 4 sans tête sur lequel Raspbian Buster est installé. J'utilisais cette page comme un guide d'installation. Je n'ai eu aucun problème à suivre les instructions sur cette page (toutes les dé....
5 mars 2020 à 17:41
Je sais qu'il existe de nombreux compilateurs comme gcc, clang, ninja mais j'entends parler de "Toolchains" et ainsi de suite, mais je ne comprends pas ce qu'ils sont, comme "gnu-toolchain 'etc....
5 mars 2020 à 16:38
Disons que j'ai cette classe class Point { inline float x() const { return v[0]; } inline float y() const { return v[1]; } inline float z() const { return v[2]; } float v[3]; }; Et je fais: Point myPoint; myPoint[0] = 5; // unrelated code goes here float myVal = myPoint.x() + 5; GCC su....
5 févr. 2020 à 00:48
J'essaie d'écrire un Module d'extension Python en C. J'utilise macOS Catalina et j'ai une installation Homebrew de Python 3 (avec les paramètres d'installation par défaut). Lorsque j'essaie de compiler le fichier suivant: #include <Python/Python.h> static PyObject* world(PyObject* self, PyObject* a....
11 déc. 2019 à 06:56
J'ai écrit une classe de chaînes appelée UString et je veux savoir si peut convertir std::string en std::wstring, et aussi convertir std::wstring en std::string. J'utilise la bibliothèque en c ++ 17, j'ai donc écrit le code comme suit. Dans UString.h: public: UString(std::string s); ....
4 nov. 2019 à 12:34
J'essaye de ramasser un peu de x86. Je compile sur un mac 64 bits avec gcc -S -O0. Code en C: printf("%d", 1); Production: movl $1, %esi leaq LC0(%rip), %rdi movl $0, %eax ; WHY? call _printf Je ne comprends pas pourquoi% eax est effacé à 0 avant l'appel de 'printf'. Étant donné....
3 nov. 2019 à 20:36
Je connais un pointeur vers un tableau et sa taille. Quel conteneur peut être créé à partir de celui-ci? J'ai essayé de faire ceci: std::initializer_list<int> foo(arr, arr + size); Cela fonctionne pour le MSVC, mais pas pour le gcc....
22 oct. 2019 à 05:02
Je travaillais sur un projet personnel récemment lorsque je suis tombé sur un problème étrange. Dans une boucle très serrée, j'ai un entier avec une valeur comprise entre 0 et 15. Je dois obtenir -1 pour les valeurs 0, 1, 8 et 9 et 1 pour les valeurs 4, 5, 12 et 13. Je me suis tourné vers godbolt po....
Test de certaines multiplications d'entiers sur x86. int32_t a = 2097152; int64_t b = a * a; Pourquoi le b ci-dessus est-il évalué à zéro?....
c gcc
10 oct. 2019 à 16:28
Il y a une question précédente Impossible de compiler le programme C sur un Mac après la mise à niveau vers Mojave, et les réponses à cela ont couvert la plupart des variations sur ce qui ne va pas. Désormais, à partir du lundi 07/10/2019, vous pouvez passer à macOS Catalina 10.15. Une fois de plus,....
8 oct. 2019 à 02:17
J'ai un problème lors de l'obtention des commentaires de l'utilisateur. J'ai utilisé la fonction scanf pour obtenir l'entrée de l'utilisateur, ce qui, je pense, est la cause du problème. Je veux que les deux invites soient sur des lignes distinctes. Le code suivant est un exemple simple du problème:....
7 oct. 2019 à 18:00
J'implémentais une fonction C pour faire des manipulations de chaînes. À la fin, j'ai dû renvoyer le pointeur vers une chaîne statique, mais avant cela, le premier élément de la chaîne devait être défini sur '\ 0' char *funct(...) { static char string[30]; . . //do some manipulations and....
25 sept. 2019 à 17:12
Je comprends pourquoi on utiliserait le «générique» de C11, et je voudrais l'utiliser dans une assertion statique pour garantir que deux types définis par l'utilisateur (typedefs) sont le même type primatif. J'ai créé une macro qui mappe chaque type primatif à une valeur énumérée et vérifié qu'elle ....
19 sept. 2019 à 23:10
J'obtiens l'avertissement suivant: warning: 'X' is initialized and declared 'extern' Et ça semble que ce n'est pas un gros problème et je pourrais le désactiver. Changer le code n'est pas vraiment une bonne idée dans mon cas car je n'ai aucun contrôle sur le code, j'ai juste besoin de le compiler. ....
16 sept. 2019 à 15:44
On m'a fourni une bibliothèque a qui s'attend à ce qu'il y ait une fonction b() mais ne l'implémente pas. Cela ressemble à ceci (je ne peux pas changer ce code): a.h : void a(); a.c : #include "a.h" extern void b(); void a() { b(); } La bibliothèque a été compilée comme ceci (supposons que t....
15 sept. 2019 à 21:01
1) Comment les structures C sont passées pour fonctionner dans l'assemblage. Je veux dire passer par valeur, pas passer par référence. 2) Au fait, comment les appelées renvoient la structure à leurs appelants? Je suis vraiment désolé pour la mauvaise expression car je ne suis pas anglophone. J'ai éc....
3 sept. 2019 à 10:13
Je souhaite appeler fftw's la fonction de transformation réelle-complexe en place, qui a la signature suivante: fftw_plan fftw_plan_dft_r2c_1d( int n, // transform length double* in, // pointer to input array fftw_complex* out, // pointer to output array unsigned f....
2 sept. 2019 à 00:42
Problème: Je connecte une nouvelle bibliothèque partagée au projet. Il est chargé avec des liens dynamiques d'exécution. Cette nouvelle bibliothèque partagée appelle une autre bibliothèque partagée. Si le projet est compilé avec l'indicateur -O0 - tout fonctionne bien. Si le projet est compilé ave....
Il y a des cas où vous savez qu'une certaine expression à virgule flottante sera toujours non négative. Par exemple, lors du calcul de la longueur d'un vecteur, on fait sqrt(a[0]*a[0] + ... + a[N-1]*a[N-1]) (NB: je suis conscient de std::hypot, ce n'est pas pertinent pour la question), et l'expres....
J'ai un struct X avec deux membres entiers 64 bits et un constructeur: struct X { X(uint64_t a, uint64_t b) { a_ = a; b_ = b; } uint64_t a_, b_; }; Quand je regarde la sortie du compilateur (x86-64 gcc 8.3 et x86-64 clang 8.0.0, sur Linux 64 bits), sans optimisations activé....
25 mars 2019 à 02:58
Je travaille sur la mise à jour de certains codes C ++ vers C + 11 en convertissant les typedef en utilisant des alias. Compte tenu du SCCE suivant: #include <iostream> #include <linux/cn_proc.h> /** * Legacy C structure */ struct sample { enum what { FOO, BAR } what; }; void tdef( ) ....
15 mars 2019 à 16:23