Все вопросы: [gcc]

787 вопросов

7
голосов
6ответов
570 просмотров

GCC - не следует ли выводить предупреждение при назначении int для char?

Недавно я установил на своем ноутбуке среду MinGW + MSYS, чтобы проверить, как обстоят дела с поддержкой Netbeans C / C ++.Кажется, все работает нормально, однако во время тестирования я заметил разницу между GCC и компилятором Microsoft cl.exe. Вот пример программы: #include <stdio.h&g...

2
голосов
1ответов
1565 просмотров

Что вызывает эту ошибку сегментации при использовании инструкций SSE?

Эта проблема сводит меня с ума.Код кажется ошибкой сегментации без уважительной причины: #define MULT_FLOAT4(X, Y) ({ \ asm volatile ( \ "movups (%0), %%xmm0\n\t" \ "mulps (%1), %%xmm0\n\t" \ "movups %%xmm0, (%1)" \ :: "r" (X), "r" (Y)); }) int main(void...

5
голосов
5ответов
6060 просмотров

c ++: создание дерева вызовов функций

Я хочу проанализировать текущие файлы C ++ в проекте и перечислить все методы / функции в нем, а затем сгенерировать вызовы функций и деревья вызывающих. Например,вы можете узнать, как doxygen генерирует дерево вызовов. Я проверил gccxml, но он не перечисляет функции, вызываемые из другой фун...

23
голосов
3ответов
15539 просмотров

Рецепт совместной компиляции binutils и gcc?

Согласно инструкциям по сборке gcc , вы можете создавать binutils одновременно со сборкой gcc (как а также gmp, mpc и т. д.). Вот что написано на этой странице: Если вы также собираетесь собрать binutils (либо обновить существующий установка или для использования вместо соответст...

0
голосов
2ответов
1157 просмотров

сохранить встроенное значение регистра asm в указатель C, можно получить его на GCC, но не на VC

для простоты я просто вставлю пример вместо всего моего кода, который немного огромен.при переносе моего кода на VC ++ вместо использования GCC мне нужно переписать несколько встроенных функций сборки, которые получают указатели и сохраняют значения в этих указателях. представьте, например, c...

3
голосов
2ответов
4107 просмотров

Причина и решение ошибки - «/ usr / bin / ld: не удается найти -levent»?

При компиляции моей программы, использующей библиотеку libevent, я использую параметр gcc -levent.Но я получаю эту ошибку - / usr / bin / ld: не удается найти -levent В моей системе нет libevent, поэтому я статически привязываюсь к нему при компиляции с использованием gcc -o Hello -stat...

2
голосов
3ответов
1847 просмотров

scanf не должен превышать переполнение буфера

У меня есть буфер, и я не хочу, чтобы пользователь вводил больше символов, чем может вместить буфер (чтобы избежать переполнения буфера). Я использую scanf и сделал следующее: char buffer[30] = {'12321'}; scanf("%30s", buffer); Однако я знаю, что я защищен, если пользователь вводит бол...

5
голосов
1ответов
3717 просмотров

Как скомпилировать для Mac OS X 10.5

Я хочу скомпилировать свое приложение для версии 10.5 и выше.С тех пор, как я обновился до Snow Leopard и установил последнюю версию XCode, gcc по умолчанию использует 10.6.Я пробовал -isysroot /Developer/SDKs/MacOSX10.5.sdk , но, похоже, это не сработало.Есть ли флаг GCC, который позволяет мне...

1
голосов
3ответов
545 просмотров

Какую версию gcc устанавливать с MinGW?

Если компиляция и связывание с MinGW gcc v3 происходит очень медленно , и gcc v4 не является вариантом установки по умолчанию: Какие преимущества / недостатки для новичка в установке той или иной версии? Скажем, например, с gcc v4, я хочу использовать PDCurses или другой GNUбиблиотеки мне ...

48
голосов
16ответов
55615 просмотров

Почему scanf () вызывает бесконечный цикл в этом коде?

У меня есть небольшая C-программа, которая просто считывает числа со стандартного ввода, по одному в каждом цикле цикла.Если пользователь вводит некоторое количество NaN, на консоль должна выводиться ошибка, и приглашение ввода должно возвращаться снова.При вводе «0» цикл должен завершиться, и к...

5
голосов
2ответов
1759 просмотров

Управление версиями цикла с помощью GCC

Я работаю над автоматической векторизацией с помощью GCC. Я не могу использовать встроенные функции или атрибуты по требованию заказчика. (Я не могу получить пользовательский ввод для поддержки векторизации) Если информация о выравнивании массива, который можно векторизовать, неизвестна, GCC ...

7
голосов
3ответов
2730 просмотров

Есть ли что-нибудь, чтобы изменить схему изменения имени экспорта в GCC?

Я пытаюсь создать свой проект, в котором есть несколько экспортированных функций.Функции следуют соглашению stdcall, и они искажаются, если скомпилированы с GCC как [email protected] Другие компиляторы искажают имя следующим образом: [email protected] Можно ли каким-либо образом заставить GCC искажать ...

4
голосов
3ответов
2136 просмотров

получение типа, возвращаемого функцией, с помощью оператора typeof в gcc

Мы можем получить тип, возвращаемый функцией в gcc, с помощью оператора typeof следующим образом: typeof(container.begin()) i; Можно ли сделать что-то подобное для функций, принимающих аргументы, но не передающих их?Например.когда у нас есть функция: MyType foo(int, char, bool, int); ...

1
голосов
2ответов
2107 просмотров

Проблемы со сборкой gcc на 64-битном RHEL5

Доброго времени суток, на 64-битном RHEL5-сервере нам нужно установить 32-битное приложение. По некоторым причинам для этого нам нужно использовать gcc 4.0.3, поэтому я сначала попытался установить эту версию на целевой компьютер, как я делал тысячу раз на 32-битных целевых платформах. Одн...

16
голосов
6ответов
16936 просмотров

Есть ли альтернатива gcc для практической разработки под * nix?

Я однажды слышал поговорку, что мы могли бы жить без Linux, но определенно не могли жить без GCC.Кажется, в мире Linux есть только один компилятор Си.Есть ли альтернативы gcc?Программисты под AIX / HPUX / Solaris используют только gcc для разработки программ?

4
голосов
6ответов
2335 просмотров

Производительность кода c

Я использую gcc для своих программ c.Как я могу проверить, какой метод работает быстрее (предположим, что я пишу код для обмена двумя числами и переписываю тот же код с помощью битового оператора), есть ли в Linux какой-либо инструмент для проверки времени, производительности и места?

28
голосов
11ответов
174827 просмотров

Как скомпилировать C ++ под Ubuntu Linux?

Я вырезал и вставил приведенный ниже код из предыдущего вопроса и вставил его в файл под названием avishay.cpp ", а затем запустил gcc avishay.cpp только для получения следующих сообщений об ошибках от компоновщика.Что пошло не так, что мне делать? [email protected]:~/Projects/StackOv...

6
голосов
5ответов
11896 просмотров

Приведение указателя const void к массиву указателей const char правильно в C

У меня есть кусок кода C, который выглядит так: const char (*foo)[2] = bar(); Теперь bar() - это функция, которая возвращает (const void *). Как правильно преобразовать этот указатель const? Код выдает это предупреждение от GCC: "initialization discards qualifiers from pointer target t...

176
голосов
8ответов
43319 просмотров

Является ли errno потокобезопасным?

В errno.h эта переменная объявлена как extern int errno;, поэтому у меня вопрос, безопасно ли проверять значение errno после некоторых вызовов или использовать perror () в многопоточном коде.Это потокобезопасная переменная?Если нет, то какая альтернатива? Я использую linux с gcc на архитектуре...

18
голосов
6ответов
35386 просмотров

Как я могу определить обратный адрес в стеке?

Я знаю, что если я нахожусь внутри некоторой функции foo(), которая вызывается где-то из функции bar(), то этот адрес возврата помещается в стек. #include <stdio.h> void foo() { unsigned int x; printf("inside foo %x\n", &x); } int main() ...

5
голосов
2ответов
4560 просмотров

ошибка компоновщика для ns_initparse

Вот код #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <netinet/in.h> #include <resolv.h> int main (int argc, char *argv[]) { u_char nsbuf[4096]; char dispbuf[4096]; ns_msg msg; ns_rr rr; int i, j, l; if (argc < 2...

4
голосов
7ответов
1665 просмотров

Можно ли в Linux создавать двоичные файлы для другой платформы?

Можно ли создавать двоичные файлы другой платформы в Linux?Скажем, у меня есть программа, которую можно скомпилировать с помощью gcc в файл .o, но можем ли мы использовать ее для вывода exe, который можно запустить в Windows?

2
голосов
3ответов
2063 просмотров

Использование очереди сообщений между несвязанными процессами

Я пытаюсь использовать очередь сообщений для связи между двумя несвязанными процессами в Linux.Я знаю, что использование общего значения ключа позволит нам открыть одну и ту же очередь сообщений в обоих несвязанных процессах.Но проблема в том, что иногда значение ключа, соответствующее очереди с...

60
голосов
4ответов
39109 просмотров

Эквивалент #pragma comment (lib, "xxx.lib") в Linux?

У меня есть файл статической библиотеки под названием libunp.a, я знаю, что могу использовать gcc -lunp xx для связи с библиотекой. Я мог бы использовать #pragma comment(lib,"xxx.lib"), чтобы сообщить компилятору Microsoft C / C ++ включить библиотеку;как я мог это сделать под Linux / GCC?

1
голосов
2ответов
201 просмотров

Есть ли способ посмотреть расширенный файл препроцессора на C

Я хочу знать, как мы можем просмотреть файл C после того, как он был расширен препроцессором перед компиляцией со всеми значениями макросов, помещенными в код внутри функции, где бы они ни использовались. Есть ли способ сделать это?

0
голосов
5ответов
475 просмотров

Выравнивание структуры данных

Итак, я кодирую некоторые структуры пакетов (Ethernet, IP и т. д.) и заметил, что за некоторыми из них следует атрибут ((упакованный)), который не позволяет компилятору gcc попытаться добавитьдополнение к ним.В этом есть смысл, потому что предполагается, что эти структуры переходят на провод. ...

2
голосов
5ответов
5195 просмотров

Проблема определения NULL в 64-битной системе

Я работаю на 64-битной платформе RHEL 5.1 с использованием gcc 4.1.2. У меня есть служебная функция: void str_concat(char *buff, int buffSize, ...); который concats char * передается в списке переменных (...), а последний аргумент должен быть NULL, чтобы обозначить конец аргументов. В ...

8
голосов
3ответов
1926 просмотров

Оптимизация обратной связи с компилятором C / C ++

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

12
голосов
2ответов
23413 просмотров

Как скомпилировать 32-битный двоичный файл на 64-битных машинах Linux, не затрагивая переменную окружения CFLAGS

Решение в Как скомпилировать 32-битный двоичный файл на 64-битной машине Linux с помощью gcc / cmake невозможно, потому что я использую стороннее программное обеспечение и другие вещи, которые уже используют переменную CFLAGS.И исправлять их make-файлы нельзя, - говорит мой босс. Поэт...

7
голосов
2ответов
1577 просмотров

Что означает% c во встроенном ассемблерном коде GCC?

Я пытаюсь понять этот встроенный ассемблерный код, который исходит из _hypercall0 здесь . asm volatile ("call hypercall_page+%c[offset]" \ : "=r" (__res) \ : [offset] "i" (__HYPERVISOR_##name * sizeof(hypercall_page[0])) \ : "memory", "edi", "esi", "edx", "ecx", "ebx"...