На странице "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 все делает по стандарту :)
Ещё бы -Wall -Werror по умолчанию включить... И -ansi или -std=c99 вместо -std=gnu89. Жёстко, но могло бы уменьшить численность непонимающих "противоречивые сообщения" компилятора.
пример для знатоков
[CXX] mods/ModSERVTest/ModSERVTest.os as PIC...
mods/ModSERVTest/ModSERVTest.cpp:146: warning: ‘mod_ModSERVTest’ initialized and externcat ./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 совершенно не к месту
http://gcc.gnu.org/bugzilla/show_bug.cgi?format=multiple&id=...
>http://gcc.gnu.org/bugzilla/show_bug.cgi?format=multiple&id=...пишем с тобой минута в минуту? тоже сова и работаешь по ночам? :)
не надо, я раньше :-P
И вообще, к вас тут с++, жуть... тошнит меня от него.
>И вообще, к вас тут с++, жуть... тошнит меня от него.
Так пакетик возьми, не пачкай форум :)
почему же не к месту - extern означает что данная функция определена в другом модуле ( библиотеке) и никакой инициализации здесь не позволено. Очевидно что DECL_F_XXX что то там добавили да небось со своим "extern".
>почему же не к месту - 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),\
}
>почему же не к месту - extern означает что данная функция определена
>в другом модуле ( библиотеке) и никакой инициализации здесь не позволено.
>Очевидно что DECL_F_XXX что то там добавили да небось со своим
>"extern"., что ни разу не ошибка. так, дурацкий ворнинг, как признают сами разработчики GCC.
Пущай будет... и вообще extern нужон для грязных дел.
вызвал extern func() или extern struct str; и забыл.
>Пущай будет... и вообще extern нужон для грязных дел.
>вызвал extern func() или extern struct str; и забыл.в данном случае без extern "C" никак. я же обьектную .so-шку оформляю...
mnda... ну ладно, может для LORа это и прокатит за "новость", но для OpenNet... o tempore o mores :-/// wbr