Запитання з тегом «gcc»

GCC - колекція компіляторів GNU. Це де-факто стандартний компілятор для C, C ++, Go, Fortran та Ada на Linux, а також підтримує багато інших мов та платформ. Крім компілятора GCC має ланцюжок інструментів (libc, libstdc ++, objdump, nm тощо), які широко використовуються на декількох платформах і системах.

5
Чи небезпечний __attribute __attribute __ ((упакований)) gcc / #pragma?
У C компілятор викладе члени структури в тому порядку, в якому вони оголошені, з можливими байтами вставки, вставленими між членами або після останнього члена, щоб забезпечити правильне вирівнювання кожного члена. gcc надає розширення мови __attribute__((packed)), яке вказує компілятору не вставляти прокладки, що дозволяє членам структури бути нерівними. Наприклад, якщо система …
164 c  gcc  pragma-pack 

5
Чому цей цикл створює "попередження: ітерація 3u викликає невизначене поведінку" та виводить більше 4 рядків?
Складання цього: #include <iostream> int main() { for (int i = 0; i < 4; ++i) std::cout << i*1000000000 << std::endl; } і gccвидає таке попередження: warning: iteration 3u invokes undefined behavior [-Waggressive-loop-optimizations] std::cout << i*1000000000 << std::endl; ^ Я розумію, що існує підписане ціле число. Що я не можу …

1
Створіть .so файл із .c-файлу за допомогою командного рядка gcc
Я намагаюся створити привіт світовий проект для динамічних бібліотек Linux (файли .so). Отже, у мене є файл hello.c: #include <stdio.h> void hello() { printf("Hello world!\n"); } Як створити файл .so, який експортує hello(), використовуючи gcc з командного рядка?
162 c  linux  gcc  shared-libraries 

14
Неможливо компілювати програму C на Mac після оновлення до Mojave
Я використовував команду gcc на терміналі для компіляції програм C, але раптом після оновлення ОС моєї Mac (до macOS 10.14 Mojave та XCode 10.0) я почав отримувати повідомлення: test.c:8:10: fatal error: stdio.h: No such file or directory #include <stdio.h> ^~~~~~~~~ compilation terminated. У мене вже встановлено gcc, оскільки я можу …
159 c  macos  gcc  terminal 

3
LD_LIBRARY_PATH проти LIBRARY_PATH
Я будую просту програму C ++ і хочу тимчасово замінити загальнодоступну бібліотеку, що постачається системою, більш новою її версією для розробки та тестування. Я спробував встановити змінну LD_LIBRARY_PATH, але лінкер (ld) не вдався до: / usr / bin / ld: не вдається знайти -lyaml-cpp Я очікував, що це спрацює, оскільки …
159 gcc  g++  ld 

3
Декларація функції не є прототипом
У мене створена бібліотека, mylib.c: #include <mylib.h> int testlib() { printf("Hello world\n"); return (0); } mylib.h: #include <stdio.h> extern int testlib(); У своїй програмі я спробував викликати цю функцію бібліотеки: myprogram.c: #include <mylib.h> int main (int argc, char *argv[]) { testlib(); return (0); } При спробі компілювати цю програму я …
158 c  gcc 

9
Чому відтікання з кінця недійсної функції без повернення значення не створює помилки компілятора?
З тих пір, як я багато років тому зрозумів, що це не створює помилок за замовчуванням (принаймні в GCC), я завжди цікавився чому? Я розумію, що ви можете видавати прапори компілятора для створення попередження, але чи не завжди це має бути помилка? Чому має значення недійсна функція, що не повертає …
158 c++  c  gcc  g++ 

24
Корисні прапорці GCC для C
Крім налаштування -Wallта налаштування -std=XXX, які інші справді корисні, але менш відомі прапорці компілятора існують для використання в C? Мене особливо цікавлять будь-які додаткові попередження та / або перетворення попереджень на помилки в деяких випадках, щоб абсолютно мінімізувати будь-які випадкові невідповідності.
157 c  gcc  compiler-flags 



5
Чому вдосконалений оптимізатор GCC 6 порушує практичний код C ++?
У GCC 6 є нова функція оптимізатора : вона передбачає, що thisце не завжди є нульовим і оптимізується на основі цього. Поширення діапазону значень тепер передбачає, що цей покажчик функцій-членів C ++ не є нульовим. Це виключає загальні перевірки нульових покажчиків, але також порушує деякі невідповідні бази коду (наприклад, Qt-5, …

7
Зробити встановлення, але не за замовчуванням каталогів?
Я хочу запустити 'make install', щоб у мене було все, що мені потрібно, але я хотів би, щоб він встановлював речі у власну папку на відміну від системної / usr / bin тощо. Це можливо? навіть якщо він посилається на інструменти у / usr / bin тощо?
148 linux  gcc  makefile  autotools 

2
Що насправді робить факс-математика gcc?
Я розумію, --ffast-mathпрапор gcc може значно збільшити швидкість для float ops, і виходить за рамки стандартів IEEE, але я не можу знайти інформацію про те, що насправді відбувається, коли він включений. Чи можете будь-хто пояснити будь-яку деталь і, можливо, дати чіткий приклад того, як щось змінилося, якщо прапор був увімкнений …

6
У чому полягає перевага __builtin_expect GCC в інших операторах?
Я натрапив на те, #defineв якому вони використовують __builtin_expect. Документація говорить: Вбудована функція: long __builtin_expect (long exp, long c) Ви можете використовувати __builtin_expectдля надання компілятору інформації про передбачення галузей. Взагалі, вам слід віддати перевагу реальним відгукам профілів для цього ( -fprofile-arcs), оскільки програмісти, як відомо, погано прогнозують, як реально працюють …
144 c  linux  gcc  built-in 

11
Чи використовує застарілий компілятор C ризик безпеки?
У виробництві є декілька систем побудови, про які ніхто не піклується, і ці машини працюють за давніми версіями GCC, як GCC 3 або GCC 2. І я не можу переконати керівництво оновити його до більш недавнього: вони кажуть, "якщо не зламаються, не виправляйте". Оскільки ми підтримуємо дуже стару базу коду …
139 c  security  gcc 

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.