|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.03.2014, 17:46 | #1 |
crafter
Форумчанин
Регистрация: 03.09.2011
Сообщений: 127
|
g++. Проблема линковки.
Есть item.h:
Код:
Код:
Код:
cmd>: g++ -c main.cpp // ok cmd>: g++ -o a.exe item\item.o main.o // ERROR!!! Сообщение: main.o:main.cpp.text+0xf): undefined reference to `Item::Init() ,но cmd>: g++ item\item.cpp main.cpp // ok Почему компилится, компонуется и дает exe? static функции имеют внутреннее связывание, и если бы у нас отсутствовал класс Item в .h файле и был бы просто метод: static void Init(), с реализацией в .cpp, то команда: cmd>: g++ item\item.cpp main.cpp выдала бы ошибку, в чем разница связывания? UPD: Кстати, ранее код item.h и item.cpp использовал ранее в другом проекте, все собиралось без проблем с флагом -o, почему сейчас возникла такая проблема не могу понять. Последний раз редактировалось halcyon; 20.03.2014 в 07:12. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Типы линковки | Igor95 | Общие вопросы C/C++ | 15 | 08.08.2013 12:26 |
Ошибка линковки + вопрос | hvz- | Win Api | 17 | 14.03.2012 22:47 |
Ошибка линковки! | Hacker19_90 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 19.01.2012 06:43 |
Шаблонный класс, ошибка линковки | revaldo666 | Общие вопросы C/C++ | 1 | 12.12.2011 15:57 |
Банальная ошибка линковки | prouser | Общие вопросы C/C++ | 2 | 24.07.2011 04:22 |