The OpenNET Project / Index page

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

Разбор противоречивых сообщений об ошибках GCC

10.03.2007 23:01

На странице "GCC Compiler Errors and How-to Solve The Problem" собрана коллекция текстов ошибок выдаваемых GCC для, на первый взгляд, верного кода, который без проблем собирается другими компиляторами. Для каждой ошибки приводится пояснение и рекомендация по устранению.

  1. Главная ссылка к новости (http://www.digitalfanatics.org...)
Лицензия: CC BY 3.0
Источник: osnews.com
Короткая ссылка: https://opennet.ru/10071-gcc
Ключевые слова: gcc
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (15) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 00:07, 11/03/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    По мне так там все ошибки в коде сразу видны
     
  • 1.2, Painbringer (?), 12:44, 11/03/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    только в очередной раз подтверждает что gcc все делает по стандарту :)
     
     
  • 2.3, const86 (ok), 14:57, 11/03/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Ещё бы -Wall -Werror по умолчанию включить... И -ansi или -std=c99 вместо -std=gnu89. Жёстко, но могло бы уменьшить численность непонимающих "противоречивые сообщения" компилятора.
     
     
  • 3.4, Dvorkin (??), 16:29, 11/03/2007 [^] [^^] [^^^] [ответить]  
  • +/
    пример для знатоков
    [CXX] mods/ModSERVTest/ModSERVTest.os as PIC...
    mods/ModSERVTest/ModSERVTest.cpp:146: warning: ‘mod_ModSERVTest’ initialized and extern

    cat ./mods/ModSERVTest/ModSERVTest.cpp
    ...
    // module linkage header
    extern "C" {
    DECL_F_NEW(ModSERVTest) {  return( new ModSERVTest);  }
    DECL_F_DEL(ModSERVTest) {  delete ( ModSERVTest *)_mod;  }
    DECL_F_FIL(ModSERVTest) {
      _mod->type = MOD_T_SERV;
      _mod->inst_type = MOD_IT_MANY;
      _mod->conf_type = MOD_CT_XML;  }
    }
    // module linkage header end
    ...
    warning совершенно не к месту

     
     
  • 4.7, pavlinux (??), 02:21, 12/03/2007 [^] [^^] [^^^] [ответить]  
  • +/
    http://gcc.gnu.org/bugzilla/show_bug.cgi?format=multiple&id=13101
     
     
  • 5.9, Dvorkin (??), 02:26, 12/03/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >http://gcc.gnu.org/bugzilla/show_bug.cgi?format=multiple&id=13101

    пишем с тобой минута в минуту? тоже сова и работаешь по ночам? :)

     
     
  • 6.10, pavlinux (??), 02:55, 12/03/2007 [^] [^^] [^^^] [ответить]  
  • +/
    не надо, я раньше :-P
     
     
  • 7.12, pavlinux (??), 03:02, 12/03/2007 [^] [^^] [^^^] [ответить]  
  • +/
    И вообще, к вас тут с++, жуть... тошнит меня от него.
     
     
  • 8.15, Анонимус (?), 11:21, 14/03/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Так пакетик возьми, не пачкай форум ... текст свёрнут, показать
     

  • 1.5, Аноним (-), 23:30, 11/03/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    почему же не к месту - extern означает что данная функция определена в другом модуле ( библиотеке) и никакой инициализации здесь не позволено. Очевидно что DECL_F_XXX что то там добавили да небось со своим "extern".
     
     
  • 2.6, Dvorkin (??), 02:20, 12/03/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >почему же не к месту - extern означает что данная функция определена
    >в другом модуле ( библиотеке) и никакой инициализации здесь не позволено.
    >Очевидно что DECL_F_XXX что то там добавили да небось со своим
    >"extern".

    #define DECL_F_NEW(x) static Mod *f_##x##_new( Ctx &_ctx, Mod_t *_mod)
    #define DECL_F_DEL(x) static void f_##x##_del( Ctx &_ctx, Mod   *_mod)
    #define DECL_F_FIL(x) static void f_##x##_fil( Ctx &_ctx, Mod_t *_mod)
    #define DYN_LINKED_MOD(n,x) extern "C" struct mod_entry_t mod_##x = \
      {\
       (n),\
       PKG_V0,\
       PKG_V1,\
       PKG_V2,\
       (f_##x##_new),\
       (f_##x##_del),\
       (f_##x##_fil),\
    }

     
  • 2.8, Dvorkin (??), 02:21, 12/03/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >почему же не к месту - extern означает что данная функция определена
    >в другом модуле ( библиотеке) и никакой инициализации здесь не позволено.
    >Очевидно что DECL_F_XXX что то там добавили да небось со своим
    >"extern".

    , что ни разу не ошибка. так, дурацкий ворнинг, как признают сами разработчики GCC.

     
     
  • 3.11, pavlinux (??), 02:59, 12/03/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Пущай будет... и вообще extern нужон для грязных дел.
    вызвал extern func() или extern struct str; и забыл.
      
     
     
  • 4.14, Dvorkin (??), 12:34, 12/03/2007 [^] [^^] [^^^] [ответить]  
  • +/
    >Пущай будет... и вообще extern нужон для грязных дел.
    >вызвал extern func() или extern struct str; и забыл.

    в данном случае без extern "C" никак. я же обьектную .so-шку оформляю...

     

  • 1.13, klalafuda (?), 07:26, 12/03/2007 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/

    mnda... ну ладно, может для LORа это и прокатит за "новость", но для OpenNet... o tempore o mores :-/

    // wbr

     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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