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

Исходное сообщение
"Снова проблемы с g++"

Отправлено WildFalcon , 01-Ноя-07 16:43 
Что означает ответ

g++ -I/usr/local/include/ -L/usr/local/lib -lfcgi MainEngine.cpp -o engine.cgi
/var/tmp//ccj3NHct.o(.text+0x5a): In function `main':
: undefined reference to `Network::Network()'
/var/tmp//ccj3NHct.o(.text+0x82): In function `main':
: undefined reference to `Network::~Network()'

Класс Network реализован в отдельной паре с++/h файлов, и использует еще несколько классов реализованніх такими же с++/h парами. Может у меня строка компиляции неправильна?
Надо ли указівать все файлы н компиляцию? Или дело в другом. Если да, то как?


Содержание

Сообщения в этом обсуждении
"Снова проблемы с g++"
Отправлено Arifolth , 01-Ноя-07 16:55 
>[оверквотинг удален]
>/var/tmp//ccj3NHct.o(.text+0x5a): In function `main':
>: undefined reference to `Network::Network()'
>/var/tmp//ccj3NHct.o(.text+0x82): In function `main':
>: undefined reference to `Network::~Network()'
>
>Класс Network реализован в отдельной паре с++/h файлов, и использует еще несколько
>классов реализованніх такими же с++/h парами. Может у меня строка компиляции
>неправильна?
>Надо ли указівать все файлы н компиляцию? Или дело в другом. Если
>да, то как?

нада компилить всё естественно
компилятор не телепат однако

а ответ этот означает что линкер не может найти implementation конструктора и деструктора класса Network


"Снова проблемы с g++"
Отправлено WildFalcon , 01-Ноя-07 17:06 

>нада компилить всё естественно
>компилятор не телепат однако
>

А можно поконкретнее, как все файлы компилировать/собирать?
К примеру, класс Network реализован в файлах Network.cpp Network.h

>а ответ этот означает что линкер не может найти implementation конструктора и
>деструктора класса Network

От того что они не скомпилированы?


"Снова проблемы с g++"
Отправлено vic , 01-Ноя-07 17:24 
>А можно поконкретнее, как все файлы компилировать/собирать?
>К примеру, класс Network реализован в файлах Network.cpp Network.h

g++ -I/usr/local/include/ -L/usr/local/lib -lfcgi MainEngine.cpp Network.cpp -o engine.cgi


"Снова проблемы с g++"
Отправлено WildFalcon , 01-Ноя-07 17:34 
>>А можно поконкретнее, как все файлы компилировать/собирать?
>>К примеру, класс Network реализован в файлах Network.cpp Network.h
>
>g++ -I/usr/local/include/ -L/usr/local/lib -lfcgi MainEngine.cpp Network.cpp -o engine.cgi

А один раз скомпилировав файлы классов мне их потом не нужно будет перекомпилировать?



"Снова проблемы с g++"
Отправлено vic , 01-Ноя-07 18:34 
>>>А можно поконкретнее, как все файлы компилировать/собирать?
>>>К примеру, класс Network реализован в файлах Network.cpp Network.h
>>
>>g++ -I/usr/local/include/ -L/usr/local/lib -lfcgi MainEngine.cpp Network.cpp -o engine.cgi
>
>А один раз скомпилировав файлы классов мне их потом не нужно будет
>перекомпилировать?

Если не вносите в них изменения, то нет.


"Снова проблемы с g++"
Отправлено elvenic , 01-Ноя-07 21:43 
>>>>А можно поконкретнее, как все файлы компилировать/собирать?
>>>>К примеру, класс Network реализован в файлах Network.cpp Network.h
>>>
>>>g++ -I/usr/local/include/ -L/usr/local/lib -lfcgi MainEngine.cpp Network.cpp -o engine.cgi
>>
>>А один раз скомпилировав файлы классов мне их потом не нужно будет
>>перекомпилировать?
>
>Если не вносите в них изменения, то нет.

А вообще, стоит начать разбираться с make (http://www.gnu.org/software/make/manual/), или более современными утилитами построения проложений (scons - http://www.scons.org, rake - http://docs.rubyrake.org/, etc.)