The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Ошибка компиляции quake2, !*! igrock, 02-Июн-07, 04:36  [смотреть все]
При компиляции выдается ошибка связанная с функцией LoadPCX и еще какой то Load...
Сейчас точно не помню что именно но вроде компилятор говорит что будет интерпретировать warnings как errors.Может ключи к компилятору дать какие? даже если указать при компиляции ключ пропускать ошибки то такая ошибка вылазит очень много раз (именно про эти две функции) во время компиляции.  Если кто нить при компиляции кваки на такую ошибку наталкивался подскажите что делать. В случае чего тогда уж позже выложу сообщение с конкретным листингом ошибки и можно будет разобрать проблему просто как очередной трабл с компиляцией, не обязательно кваки. Заранее спасибо.
  • Ошибка компиляции quake2, !*! masted, 10:05 , 02-Июн-07 (1)
    • Ошибка компиляции quake2, !*! igrock, 10:02 , 05-Июн-07 (2)
      Версия:    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 (то что было)
          результат то один :-$

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





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру