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

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

2
объединить два скомпилированных GCC объектных файла .o в третий .o файл
Как объединить два объектных файла .o, скомпилированных GCC, в третий файл .o? $ gcc -c a.c -o a.o $ gcc -c b.c -o b.o $ ??? a.o b.o -o c.o $ gcc c.o other.o -o executable Если у вас есть доступ к исходным файлам, -combineфлаг GCC объединит исходные файлы перед …

15
Рекомендуемые параметры предупреждений gcc для C [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы на него можно было ответить с помощью фактов и цитат, отредактировав этот пост . Закрыт 6 лет назад . Уточните этот вопрос Какие еще предупреждения, кроме -Wall, люди …
83 c  gcc  compiler-errors 

1
Какие есть параметры командной строки --start-group и --end-group?
Какова цель этих параметров командной строки? Пожалуйста, помогите расшифровать значение следующей командной строки: -Wl,--start-group -lmy_lib -lyour_lib -lhis_lib -Wl,--end-group -ltheir_lib Очевидно, это как-то связано с линковкой, но в руководстве GNU ничего не говорится о том, что именно означает группировка.
83 gcc  linker  ld 

5
Конфликт между учебником Стэнфорда и GCC
Согласно этому фильму (около 38-й минуты), если у меня есть две функции с одинаковыми локальными переменными, они будут использовать одно и то же пространство. Итак, следующая программа должна напечатать 5. Компиляция с gccрезультатами -1218960859. Почему? Программа: #include <stdio.h> void A() { int a; printf("%i",a); } void B() { int a; …

3
Почему панель GCC работает с NOP?
Я работал с C некоторое время и совсем недавно начал разбираться в ASM. Когда я компилирую программу: int main(void) { int a = 0; a += 1; return 0; } В дизассемблере objdump есть код, но после ret нет: ... 08048394 <main>: 8048394: 55 push %ebp 8048395: 89 e5 mov …
81 c  gcc  assembly 


2
Пытаемся понять параметр gcc -fomit-frame-pointer
Я попросил Google дать мне значение gccпараметра -fomit-frame-pointer, который перенаправляет меня к приведенному ниже утверждению. -fomit-frame-pointer Не храните указатель фрейма в регистре для функций, которым он не нужен. Это позволяет избежать инструкций по сохранению, настройке и восстановлению указателей кадров; он также делает дополнительный регистр доступным для многих функций. Это также …


4
Связывание с динамической библиотекой с зависимостями
Рассмотрим следующий сценарий: Общая библиотека libA.so, без зависимостей. Общая библиотека libB.so с libA.so в качестве зависимости. Я хочу скомпилировать двоичный файл, который связан с libB. Должен ли я связать двоичный файл только с libB или с libA? Есть ли способ связать только с прямыми зависимостями, позволяя разрешать неразрешенные символы из …
79 gcc  dll  dependencies  g++ 

5
Почему компилятор выдает предупреждение: «отсутствует инициализатор»? Разве структура не инициализирована?
Я создаю своего рода интерфейс для программы. Для запуска программы я использую вызов CreateProcess(), который, помимо прочего, получает указатель на STARTUPINFOструктуру. Чтобы инициализировать структуру, которую я делал: STARTUPINFO startupInfo = {0}; // Or even '\0'. startupInfo.cb = sizeof(startupInfo); При компиляции программы с включением этих наборов предупреждений GCC -Wall -Wextraвыдает предупреждение …
79 c  winapi  gcc 

8
Неопределенная ссылка на static const int
Я сегодня столкнулся с интересной проблемой. Рассмотрим этот простой пример: template <typename T> void foo(const T & a) { /* code */ } // This would also fail // void foo(const int & a) { /* code */ } class Bar { public: static const int kConst = 1; void …
79 c++  gcc 

10
Не могу скомпилировать C программу на Mac после обновления до Catalina 10.15
Есть предыдущий вопрос: « Не могу скомпилировать программу C на Mac после обновления до Mojave» , и ответы на него охватили большинство вариантов того, что идет не так. Теперь, по состоянию на понедельник 2019-10-07, вы можете перейти на macOS Catalina 10.15. Еще раз, во время обновления /usr/includeкаталог был снесен обновлением, …
64 c  xcode  macos  gcc  macos-catalina 

2
Почему переключатель не оптимизирован так же, как цепочка, если еще в c / c ++?
Следующая реализация square производит серию операторов cmp / je, как я и ожидал от цепочки if: int square(int num) { if (num == 0){ return 0; } else if (num == 1){ return 1; } else if (num == 2){ return 4; } else if (num == 3){ return 9; …

1
gcc-10.0.1 специфический сегмент
У меня есть пакет R с скомпилированным кодом C, который довольно долго был относительно стабильным и часто тестировался на широком спектре платформ и компиляторов (windows / osx / debian / fedora gcc / clang). Совсем недавно была добавлена ​​новая платформа для тестирования пакета: Logs from checks with gcc trunk aka …

1
Почему GCC агрегирует инициализацию массива в первую очередь с нулями, включая ненулевые элементы?
Почему gcc заполняет весь массив нулями вместо оставшихся 96 целых чисел? Все ненулевые инициализаторы находятся в начале массива. void *sink; void bar() { int a[100]{1,2,3,4}; sink = a; // a escapes the function asm("":::"memory"); // and compiler memory barrier // forces the compiler to materialize a[] in memory instead of …

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