Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : Anton Morozov                        2:5051/39      26 Nov 2004  22:34:20
 To : All
 Subject : multiple
 -------------------------------------------------------------------------------- 
 
 
 Есть у меня проблема. Точнее, программа.
 Программа представляет собой несколько .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, и
 ключа такого там нет.
 
 Помозите дураку, люди божие!
 
                                          С уважением от меня.
 
 ... SMS me: (+7)-8422-981722
 --- FreeBSD/4.10-RELEASE
  * Origin: Varranty void if this text removed (2:5051/39)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 multiple   Anton Morozov   26 Nov 2004 22:34:20 
 Re: multiple   Aleksandr I. Mogilny   01 Dec 2004 13:59:09 
Архивное /ru.unix.bsd/186041a77a3d.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional