|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Aleksandr I. Mogilny 2:5020/400 01 Dec 2004 13:59:09 To : Anton Morozov Subject : Re: multiple -------------------------------------------------------------------------------- "Anton Morozov" <Anton.Morozov@f39.n5051.z2.fidonet.org> wrote in message news:1101494845@f39.n5051.z2.ftn... > Дарова, All! > > Есть у меня проблема. Точнее, программа. > Программа представляет собой несколько .cpp файлов. > Каждый файл имеет как бесплатное приложение .h > В каждом .h как бонус прописано > > #ifndef _LABUDA > #define _LABUDA > файл > #endif > > , вообщем, стандартная затычка. > Файлы собираются по одному с ключом -с. Прекрасно собираются. > Затем g++ -lc -lstdc++ -o Q *.o > и - вот оно! - куча сообщений линкера о том, что мол такое-то там-то уже > используется тем-то (программа активно использует обьекты из разных файлов). > Сообщения такие: > > /home/anvir/fmud/src/sys.cpp:96: multiple definition of `sys_command' > /tmp/ccHuAxNb.o:/home/anvir/fmud/src/cons.cpp:81: first defined here > > Т.е. cons.h пользует sys.h раньше, чем сам sys.cpp, и g++ ругается на то, что > sys.cpp определяет собственную же переменную. Бред, короче. > > Раньше оно собиралось вроде бы gcc 3.3.2 (?), который к линкеру имеет ключик -z > muldefs, т.е. класть на множественные описания. Теперь у меня gcc 3.3.4, и > ключа такого там нет. > > Помозите дураку, люди божие! Во-первых g++ это чисто плюсовый компилятор. Юзать -lstdc++ не надо. Если там сишный код то g++ не юзают. А вообще-то было бы хорошо посмотреть на код. Если срочно надо кидай его мне на мыло <sg2000@land.ru>. Я гляну. --- ifmail v.2.15dev5.3 * Origin: Infopulse Ukraine news (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/22523a68361ab.html, оценка из 5, голосов 10
|