Вопросы с тегом «gcc»

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

5
Небезопасен ли пакет gcc для __attribute __ ((упакованный)) / #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
Я пытаюсь создать проект hello world для динамических библиотек 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 после обновления до Мохаве
Я использовал команду gcc на терминале для компиляции программ на Си, но внезапно, после обновления ОС моего 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она всегда не равна нулю, и оптимизирует на основе этого. Распространение диапазона значений теперь предполагает, что указатель this функций-членов C ++ не равен NULL. Это исключает обычные проверки нулевого указателя, но также нарушает некоторые несоответствующие кодовые базы (такие как …

7
Сделать установку, но не в каталоги по умолчанию?
Я хочу запустить 'make install', чтобы у меня было все необходимое, но я бы хотел, чтобы он устанавливал вещи в их собственную папку, а не в системный каталог / usr / bin и т. Д. Возможно ли это? даже если он ссылается на инструменты в / usr / bin и …
148 linux  gcc  makefile  autotools 

1
brew install gcc слишком много времени
Я делаю чистую установку Mavericks и случайно сделал brew install gcc что занимает больше получаса, а может и больше. Должен ли я его прекратить? Теперь я знаю, что мне следовало установить конкретный gcc (возможно, gcc48), но уже слишком поздно, а воздух моего MacBook тяжело дышит. На данный момент скачаны все …
147 gcc  homebrew 

7
В чем преимущество __builtin_expect GCC в операторах if else?
Я наткнулся на то, #defineв котором их используют __builtin_expect. В документации говорится: Встроенная функция: long __builtin_expect (long exp, long c) Вы можете использовать, __builtin_expectчтобы предоставить компилятору информацию о предсказании ветвления. В общем, вы должны предпочесть использовать для этого фактическую обратную связь профиля ( -fprofile-arcs), поскольку программисты, как известно, плохо предсказывают, …
147 c  linux  gcc  built-in 

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.