URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6514
[ Назад ]

Исходное сообщение
"Ошибка компиляции quake2"

Отправлено igrock , 02-Июн-07 04:36 
При компиляции выдается ошибка связанная с функцией LoadPCX и еще какой то Load...
Сейчас точно не помню что именно но вроде компилятор говорит что будет интерпретировать warnings как errors.Может ключи к компилятору дать какие? даже если указать при компиляции ключ пропускать ошибки то такая ошибка вылазит очень много раз (именно про эти две функции) во время компиляции.  Если кто нить при компиляции кваки на такую ошибку наталкивался подскажите что делать. В случае чего тогда уж позже выложу сообщение с конкретным листингом ошибки и можно будет разобрать проблему просто как очередной трабл с компиляцией, не обязательно кваки. Заранее спасибо.

Содержание

Сообщения в этом обсуждении
"Ошибка компиляции quake2"
Отправлено masted , 02-Июн-07 10:05 
>При компиляции выдается ошибка связанная с функцией LoadPCX и еще какой то
>Load...
Вывод компилятора в студию. У телепатов уже отпуска летнии начались.



"Ошибка компиляции quake2"
Отправлено igrock , 05-Июн-07 10:02 
Версия:    gcc (GCC) 4.1.0 20060304 (Red Hat 4.1.0-3)

Вывод компилятора:
...

cc1: warnings being treated as errors
r_image.c: In function 'LoadPCX':
r_image.c:103: warning: dereferencing type-punned pointer will break strict-aliasing rules

В общем оказалось 2 типа варнингов но как я понял компилятор их считает за ошибки
может такие варнинги можно игнорировать специальными ключами компиляции?

Файл r_image.c:

    byte    *raw;
    ...    
-->    len = ri.FS_LoadFile (filename, (void **)&raw);


Я заменил (void **) на (void *), везде где указывал компилятор (в 12 файлах)

и еще это:     
-->    int tmp = * ( int * ) &f;
    tmp &= 0x7FFFFFFF;
-->    return * ( float * ) &tmp;

заменил на это (в 3 файлах):

-->    int tmp =  ( int ) f;
    tmp &= 0x7FFFFFFF;
-->    return  ( float  ) tmp;

Во втором случае не сращу, кто нибуть может объяснить чем
    интерпретация переменной int как переменной float (на что я заменил)
        отличается от
    интерпретации указателя на int как указателя на float (то что было)
    результат то один :-$

после всех замен откомпилилось нормально ;)



"Ошибка компиляции quake2"
Отправлено phpcoder , 05-Июн-07 17:01 
[...]
>cc1: warnings being treated as errors
>r_image.c: In function 'LoadPCX':
>r_image.c:103: warning: dereferencing type-punned pointer will break strict-aliasing rules
>
>В общем оказалось 2 типа варнингов но как я понял компилятор их
>считает за ошибки
>может такие варнинги можно игнорировать специальными ключами компиляции?

Да. Используйте -Wno-strict-aliasing

Ну или в вашем случае, можно собирать без -Werror