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

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

Отправлено opennews , 11-Мрт-07 00:07 
На странице "GCC Compiler Errors and How-to Solve The Problem (http://www.digitalfanatics.org/index.php?title=CompilerErrors)" собрана коллекция текстов ошибок выдаваемых GCC для, на первый взгляд, верного кода, который без проблем собирается другими компиляторами. Для каждой ошибки приводится пояснение и рекомендация по устранению.

URL: http://www.digitalfanatics.org/index.php?title=CompilerErrors
Новость: http://www.opennet.me/opennews/art.shtml?num=10071


Содержание

Сообщения в этом обсуждении
"Разбор противоречивых сообщений об ошибках GCC"
Отправлено Аноним , 11-Мрт-07 00:07 
По мне так там все ошибки в коде сразу видны

"Разбор противоречивых сообщений об ошибках GCC"
Отправлено Painbringer , 11-Мрт-07 12:44 
только в очередной раз подтверждает что gcc все делает по стандарту :)

"Разбор противоречивых сообщений об ошибках GCC"
Отправлено const86 , 11-Мрт-07 14:57 
Ещё бы -Wall -Werror по умолчанию включить... И -ansi или -std=c99 вместо -std=gnu89. Жёстко, но могло бы уменьшить численность непонимающих "противоречивые сообщения" компилятора.

"Разбор противоречивых сообщений об ошибках GCC"
Отправлено Dvorkin , 11-Мрт-07 16:29 
пример для знатоков
[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 совершенно не к месту


"Разбор противоречивых сообщений об ошибках GCC"
Отправлено pavlinux , 12-Мрт-07 02:21 
http://gcc.gnu.org/bugzilla/show_bug.cgi?format=multiple&id=...

"Разбор противоречивых сообщений об ошибках GCC"
Отправлено Dvorkin , 12-Мрт-07 02:26 
>http://gcc.gnu.org/bugzilla/show_bug.cgi?format=multiple&id=...

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


"Разбор противоречивых сообщений об ошибках GCC"
Отправлено pavlinux , 12-Мрт-07 02:55 
не надо, я раньше :-P

"Разбор противоречивых сообщений об ошибках GCC"
Отправлено pavlinux , 12-Мрт-07 03:02 
И вообще, к вас тут с++, жуть... тошнит меня от него.

"Разбор противоречивых сообщений об ошибках GCC"
Отправлено Анонимус , 14-Мрт-07 11:21 
>И вообще, к вас тут с++, жуть... тошнит меня от него.
Так пакетик возьми, не пачкай форум :)


"Разбор противоречивых сообщений об ошибках GCC"
Отправлено Аноним , 11-Мрт-07 23:30 
почему же не к месту - extern означает что данная функция определена в другом модуле ( библиотеке) и никакой инициализации здесь не позволено. Очевидно что DECL_F_XXX что то там добавили да небось со своим "extern".

"Разбор противоречивых сообщений об ошибках GCC"
Отправлено Dvorkin , 12-Мрт-07 02:20 
>почему же не к месту - 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),\
}


"Разбор противоречивых сообщений об ошибках GCC"
Отправлено Dvorkin , 12-Мрт-07 02:21 
>почему же не к месту - extern означает что данная функция определена
>в другом модуле ( библиотеке) и никакой инициализации здесь не позволено.
>Очевидно что DECL_F_XXX что то там добавили да небось со своим
>"extern".

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


"Разбор противоречивых сообщений об ошибках GCC"
Отправлено pavlinux , 12-Мрт-07 02:59 
Пущай будет... и вообще extern нужон для грязных дел.
вызвал extern func() или extern struct str; и забыл.
  

"Разбор противоречивых сообщений об ошибках GCC"
Отправлено Dvorkin , 12-Мрт-07 12:34 
>Пущай будет... и вообще extern нужон для грязных дел.
>вызвал extern func() или extern struct str; и забыл.

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


"Разбор противоречивых сообщений об ошибках GCC"
Отправлено klalafuda , 12-Мрт-07 07:26 

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

// wbr