Articles of gcc

Même espace mémoire alloué à plusieurs resockets

Dans chaque itération de boucle, la variable j est déclarée à plusieurs resockets. Alors pourquoi son adresse rest- t-elle la même ? Ne devrait-on pas lui donner une adresse aléatoire à chaque fois? Est-ce que ce compilateur dépend? #include #include int main() { int i=3; while (i–) { int j; printf(“%p\n”, &j); } return 0; […]

Construire un exécutable Linux en utilisant GCC

J’utilise Linux Ubuntu Intrepid Ibex et la compilation de fichiers C ++ avec GCC, mais quand je comstack, gcc crée un a.out , c’est l’exécutable, mais comment puis-je créer des exécutables Linux? Merci!

Comment trouver les fichiers * .c et * .h utilisés pour créer un fichier binary?

Je construis un projet qui construit plusieurs bibliothèques partagées et fichiers exécutables. Tous les fichiers sources utilisés pour créer ces fichiers binarys se trouvent dans un seul répertoire / src. Il n’est donc pas évident de savoir quels fichiers sources ont été utilisés pour construire chacun des fichiers binarys (il existe une relation plusieurs-à-plusieurs). Mon […]

Pourquoi arm-linux-gnueabi-gcc et pas arm-none-eabi-gcc lors de la compilation du kernel Linux et de uBoot?

J’ai une certaine expérience de la compilation de code bare metal pour les périphériques ARM cortex-m ainsi que de Linux kernal, uBoot et des applications pour le Beaglebone Black (BBB) ​​(plus de fonctionnalités ARM avec MMU, pour ceux qui vivent sous un rocher). Cela me fait dire que le code cortex-m doit être compilé avec […]

Est-ce que gcc link programme avec la bibliothèque statique ou dynamic par défaut?

J’ai les versions statiques et dynamics de la même bibliothèque installée sur mon système Linux: /usr/lib/libsample.a /usr/lib/libsample.so Laquelle de ces librairies utilisera gcc, si je mets l’argument -lsample? gcc xxx.c -lsample Comment puis-je forcer gcc à utiliser la version statique ou dynamic de la bibliothèque

realloc sans libérer l’ancienne mémoire

Je veux utiliser realloc pour augmenter la taille de la mémoire tout en conservant le pointeur inchangé (car les appelants l’utilisent). realloc ne fait pas toujours cela; parfois, il renvoie un pointeur différent et libère l’ancien. Je voudrais “essayer” de réallouer de la mémoire et, si ce n’est pas possible, utiliser une autre méthode en […]

Forcer ou empêcher l’utilisation d’une version mineure particulière de libstdc ++

Pour pouvoir utiliser les fonctionnalités de C ++ 11 et c ++ 14, une application est compilée à l’aide d’une version plus récente de gcc (4.9.1) et donc d’une version plus récente de libstdc ++. L’application se compose de nombreux petits programmes, donc je suis lié à libstdc ++ en tant que bibliothèque partagée plutôt […]

Comment puis-je rejouer une application multithread?

Je souhaite enregistrer les opérations de synchronisation, telles que les verrous, les sempahores, les barrières d’une application multithread, afin de pouvoir relire l’application enregistrée ultérieurement, dans le but de déboguer. Pour cela, vous devez fournir vos propres variables de locking, sempaphore, condition, etc., qui font également de la journalisation, mais je pense que c’est exagéré, […]

différence entre les performances de la fonction lors du passage du paramètre en tant que constante de compilation ou variable

Dans le code du kernel Linux, une macro est utilisée pour tester le bit (Linux version 2.6.2): #define test_bit(nr, addr) \ (__builtin_constant_p((nr)) \ ? constant_test_bit((nr), (addr)) \ : variable_test_bit((nr), (addr))) où constant_test_bit et variable_test_bit sont définis comme suit: static inline int constant_test_bit(int nr, const volatile unsigned long *addr ) { return ((1UL <> 5])) != […]

Comment résoudre les erreurs de définition multiples dans gcc linux?

Je suis confronté à des erreurs en essayant de lier statiquement libDuma, pouvez-vous me dire comment demander à g ++ d’utiliser malloc de libDuma? sunny@sunny-laptop:~/CodeTest$ g++ ./testDuma.cpp -g -o testDuma -static -lduma -pthread /usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libc.a(malloc.o): In function `free’: (.text+0x4b00): multiple definition of `free’ /usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libduma.a(duma.o):(.text+0x25f0): first defined here /usr/lib/gcc/i686-linux-gnu/4.4.5/../../../../lib/libc.a(malloc.o): In function `malloc’: (.text+0x4bc0): multiple definition of `malloc’ […]