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

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

2120
Почему GCC не оптимизирует a * a * a * a * a * a до (a * a * a) * (a * a * a)?

Я делаю некоторую числовую оптимизацию для научного приложения. Одна вещь, которую я заметил, заключается в том, что GCC оптимизирует вызов pow(a,2), компилируя его a*a, но вызов pow(a,6)не оптимизируется и фактически вызовет библиотечную функцию pow, что значительно снижает производительность. (В...

1456
Составление приложения для использования в высокорадиоактивных средах

Мы компилируем встроенное приложение C / C ++, которое развертывается в экранированном устройстве в среде, засыпанной ионизирующим излучением . Мы используем GCC и кросс-компиляцию для ARM. При развертывании наше приложение генерирует некоторые ошибочные данные и вылетает чаще, чем хотелось бы....

1195
фатальная ошибка: Python.h: нет такого файла или каталога

Я пытаюсь создать общую библиотеку, используя файл расширения C, но сначала мне нужно сгенерировать выходной файл с помощью команды ниже: gcc -Wall utilsmodule.c -o Utilc После выполнения команды я получаю это сообщение об ошибке: utilsmodule.c: 1: 20: фатальная ошибка: Python.h: компиляция такого...

1023
Почему препроцессор C интерпретирует слово «linux» как константу «1»?

Почему препроцессор C в GCC интерпретирует слово linux(маленькие буквы) как константу 1? test.c: #include <stdio.h> int main(void) { int linux = 5; return 0; } Результат $ gcc -E test.c(остановка после этапа предварительной обработки): .... int main(void) { int 1 = 5; return 0; } Что,...

755
Почему моя программа работает медленно, когда зацикливается ровно на 8192 элемента?

Вот выдержка из рассматриваемой программы. Матрица img[][]имеет размер SIZE × SIZE и инициализируется в: img[j][i] = 2 * j + i Затем вы создаете матрицу res[][], и каждое поле здесь считается средним из 9 полей вокруг нее в матрице img. Граница оставлена ​​на 0 для простоты....

590
Как автоматически генерировать трассировку стека при сбое моей программы

Я работаю над Linux с компилятором GCC. Когда моя программа на C ++ падает, я бы хотел, чтобы она автоматически генерировала трассировку стека. Моя программа запускается многими разными пользователями, а также работает на Linux, Windows и Macintosh (все версии скомпилированы с использованием gcc)....

489
«Согласие с лицензией Xcode / iOS требует прав администратора, пожалуйста, перезапустите от имени root с помощью sudo». при использовании GCC

При попытке скомпилировать мою программу на C, запустите следующую команду: gcc pthread.c -o pthread Возвращает: Согласие с лицензией Xcode / iOS требует прав администратора, пожалуйста, перезапустите от имени root с помощью sudo. и мой код не компилируется. Почему это происходит и как я могу...

445
Почему GCC генерирует код на 15-20% быстрее, если я оптимизирую размер вместо скорости?

Я впервые заметил в 2009 году, что GCC (по крайней мере, в моих проектах и ​​на моих машинах) имеет тенденцию генерировать заметно более быстрый код, если я оптимизирую для size ( -Os) вместо скорости ( -O2или -O3), и с тех пор я удивляюсь, почему. Мне удалось создать (довольно глупый) код, который...

437
Отладка против выпуска в CMake

В скомпилированном проекте GCC, Как мне запустить CMake для каждого типа цели (отладка / выпуск)? Как указать флаги отладки и выпуска C / C ++ с помощью CMake? Как мне выразить, что основной исполняемый файл будет скомпилирован с g++одной вложенной библиотекой gcc?...

437
GCC -FPIC опция

Я читал об опциях GCC для соглашений по генерации кода , но не мог понять, что делает «Генерировать независимый от позиции код (PIC)». Пожалуйста, приведите пример, чтобы объяснить мне, что это...

409
Как избавиться от `устаревшего преобразования из строковой константы в 'char *'` предупреждений в GCC?

Поэтому я работаю над чрезвычайно большой кодовой базой и недавно обновлена ​​до gcc 4.3, который теперь вызывает это предупреждение: предупреждение: устаревшее преобразование из строковой константы в 'char *' Очевидно, что правильный способ исправить это - найти каждое объявление как char *s =...

357
Неопределенная ссылка на vtable

При сборке моей программы на C ++ я получаю сообщение об ошибке неопределенная ссылка на 'vtable ... В чем причина этой проблемы? Как мне это исправить? Так получилось, что я получаю сообщение об ошибке для следующего кода (рассматриваемый класс - CGameModule.), И я не могу на всю жизнь понять, в...

356
Ошибка make-файла gcc: «Нет правила для создания цели…»

Я пытаюсь использовать GCC (Linux) с make-файлом для компиляции моего проекта. Я получаю следующую ошибку, которая не может расшифровать в этом контексте: "No rule to make target 'vertex.cpp', needed by 'vertex.o'. Stop." Это make-файл: a.out: vertex.o edge.o elist.o main.o vlist.o enode.o vnode.o...

350
Как именно работает __attribute __ ((конструктор))?

Кажется, довольно ясно, что он должен все настроить. Когда именно он запускается? Почему есть две скобки? Это __attribute__функция? Макрос? Синтаксис? Это работает в C? C ++? Должна ли функция, с которой она работает, быть статичной? Когда __attribute__((destructor))бежит? Пример в Objective-C :...

349
Как работают вероятные / маловероятные макросы в ядре Linux и в чем их выгода?

Я копался в некоторых частях ядра Linux и нашел такие вызовы: if (unlikely(fd < 0)) { /* Do something */ } или if (likely(!err)) { /* Do something */ } Я нашел их определение: #define likely(x) __builtin_expect((x),1) #define unlikely(x) __builtin_expect((x),0) Я знаю, что они для оптимизации,...