ошибка gcc stdio.h - PullRequest
       1

ошибка gcc stdio.h

0 голосов
/ 14 декабря 2011

Я получаю эти ошибки при компиляции gcc -c -O2...:

In file included from /usr/include/stdio.h:930:0,
                 from /home/martin/foo.c:3:
/usr/include/x86_64-linux-gnu/bits/stdio2.h: In function ‘sprintf’:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:34:3: error: invalid use of ‘__builtin_va_arg_pack ()’
/usr/include/x86_64-linux-gnu/bits/stdio2.h: In function ‘snprintf’:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:65:3: error: invalid use of ‘__builtin_va_arg_pack ()’

Это происходит только при включении -O2, gcc 4.6.1. Что может быть не так? Я проверил все охранники заголовка, и они, кажется, в порядке.

1 Ответ

0 голосов
/ 14 декабря 2011

Есть ли веская причина для использования -O2? Будет -O [или -O1] делать вместо -O2. Если вам действительно нужно использовать -O2 и вы хотите сузить «флаг виновника», одно из предложений - использовать -O1, а затем включить gcc флажки один за другим, который используется для -O2. Вот список флагов, используемых -O2.

      -fthread-jumps 
      -falign-functions  
      -falign-jumps 
      -falign-loops  
      -falign-labels 
      ... // there is a big list 

Эти флаги вы можете найти в руководстве gcc по оптимизации . В руководстве должно быть дано подробное объяснение каждого флага и его назначения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...