Articles of gcc

C ++ d’implémentation 14 make_integer_sequence

J’ai essayé d’implémenter le modèle d’alias C ++ 14 make_integer_sequence , qui simplifie la création du modèle de classe integer_sequence . template struct integer_sequence { typedef T value_type; static constexpr size_t size() noexcept { return sizeof…(I) ; } }; template using make_integer_sequence = integer_sequence; // only for illustration. Pour implémenter make_integer_sequence nous avons besoin d’une […]

Différence entre uint et unsigned int?

Y a-t-il une différence entre uint et unsigned int ? Je regarde dans le site, mais toute question concerne C # ou C ++. Je voudrais une réponse à propos de C. Notez que j’utilise GCC sous Linux.

Quelle est la première entrée (int (*) (…)) 0 vtable dans la sortie de g ++ -fdump-class-hierarchy?

Pour ce code: class B1{ public: virtual void f1() {} }; class D : public B1 { public: void f1() {} }; int main () { B1 *b1 = new B1(); D *d = new D(); return 0; } Après la compilation, la vtable obtenue avec g++ -fdump-class-hierarchy est: Vtable for B1 B1::_ZTV2B1: 3u ensortinges […]

Résultat inattendu lorsque l’élément store C ++ dans std :: vector à partir de la valeur de retour de la fonction

Lorsque la fonction implique une réallocation, j’ai trouvé que certains compilateurs pouvaient enregistrer l’adresse avant l’appel de fonction. Il conduit la valeur de retour stockée dans l’adresse non valide. Il y a un exemple pour expliquer le comportement dans la description ci-dessus. #include #include using namespace std; vector A; int func() { A.push_back(3); A.push_back(4); return […]

Comment puis-je savoir, avec quelque chose comme objdump, si un fichier object a été construit avec -fPIC?

Comment puis-je savoir, avec quelque chose comme objdump , si un fichier object a été construit avec -fPIC ?

L’utilisation d’AVX insortingnsèques au lieu de SSE n’améliore pas la vitesse – pourquoi?

J’utilise les composants insortingnsèques SSE d’Intel depuis un certain temps avec de bons gains de performances. Par conséquent, je m’attendais à ce que les insortingnsèques AVX accélèrent encore mes programmes. Ce n’était malheureusement pas le cas jusqu’à présent. Je fais probablement une erreur stupide, alors je serais très reconnaissant si quelqu’un pouvait m’aider. J’utilise Ubuntu […]

Comment recomstackr avec -fPIC

J’essayais de réinstaller mon ffmpeg, en suivant ce guide , sur ma machine ARM Ubuntu. Malheureusement, quand je comstack un programme qui utilise cette lib, j’obtiens l’échec suivant: /usr/bin/ld: /usr/local/lib/libavcodec.a(amrnbdec.o): relocation R_ARM_MOVW_ABS_NC against `a local symbol’ can not be used when making a shared object; recomstack with -fPIC /usr/local/lib/libavcodec.a: could not read symbols: Bad value […]

Expressions “j = ++ (i | i); et j = ++ (i & i); devrait être une erreur lvalue?

Je m’attendais à cela dans mon code suivant: #include int main(){ int i = 10; int j = 10; j = ++(i | i); printf(“%d %d\n”, j, i); j = ++(i & i); printf(“%d %d\n”, j, i); return 1; } expressions j = ++(i | i); et j = ++(i & i); produira des erreurs […]

Pourquoi non initialisé au lieu de hors limites?

Dans le code ci-dessous, pourquoi b[9] non initialisé au lieu de définir des limites? #include int main(void) { char b[] = {‘N’, ‘i’, ‘c’, ‘e’, ‘ ‘, ‘y’, ‘o’, ‘u’, ‘!’}; printf(“b[9] = %d\n”, b[9]); return 0; } Appel du compilateur: % gcc -O2 -W -Wall -pedantic -c foo.c foo.c: In function ‘main’: foo.c:6:5: warning: […]

Comportement du linker très étrange

C’est étrange car j’ai pu obtenir l’erreur ci-dessous pour supprimer la référence à libm. gcc -o example example.o -Wl -L/home/kensey/cdev/lib -L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -L/usr/lib/x86_64-linux-gnu -lm -lrt -ldl -lcdev -L/home/kensey/www.tools/gplot-lib -lgplot -L/home/kensey/www.tools/gd1_3ret -lgd -lxml2 -lcurl /usr/bin/ld: /home/kensey/www.tools/gplot-lib/libgplot.a(set.o): undefined reference to symbol ‘floor@@GLIBC_2.2.5’ /usr/bin/ld: note: ‘floor@@GLIBC_2.2.5’ is defined in DSO /usr/lib/x86_64-linux-gnu/libm.so so try adding it to […]