LINUX.ORG.RU

Ошибка при линкинге

 , ,


0

1

Ставлю spectrum отсюда, всё доходит до 100%:

[100%] Building CXX object CMakeFiles/spectrum.dir/src/adhoc/adhochandler.cpp.o
А затем падает:
Linking CXX executable spectrum
CMakeFiles/spectrum.dir/src/main.cpp.o:(.rodata._ZTVN5gloox11HiComponentE[vtable for gloox::HiComponent]+0x20): undefined reference to `gloox::ClientBase::handleCompressedData(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
CMakeFiles/spectrum.dir/src/main.cpp.o:(.rodata._ZTVN5gloox11HiComponentE[vtable for gloox::HiComponent]+0x24): undefined reference to `gloox::ClientBase::handleDecompressedData(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
CMakeFiles/spectrum.dir/src/main.cpp.o:(.rodata._ZTVN5gloox11HiComponentE[vtable for gloox::HiComponent]+0x90): undefined reference to `non-virtual thunk to gloox::ClientBase::handleCompressedData(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
CMakeFiles/spectrum.dir/src/main.cpp.o:(.rodata._ZTVN5gloox11HiComponentE[vtable for gloox::HiComponent]+0x94): undefined reference to `non-virtual thunk to gloox::ClientBase::handleDecompressedData(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
CMakeFiles/spectrum.dir/src/main.cpp.o:(.rodata._ZTVN5gloox11HiComponentE[vtable for gloox::HiComponent]+0xc4): undefined reference to `non-virtual thunk to gloox::ClientBase::handleIq(gloox::IQ const&)'
CMakeFiles/spectrum.dir/src/main.cpp.o:(.rodata._ZTVN5gloox11HiComponentE[vtable for gloox::HiComponent]+0xc8): undefined reference to `non-virtual thunk to gloox::ClientBase::handleIqID(gloox::IQ const&, int)'
collect2: ld returned 1 exit status
make[2]: *** [spectrum] Error 1
make[1]: *** [CMakeFiles/spectrum.dir/all] Error 2
make: *** [all] Error 2
Мне стало интересно, что за хрень такая творится, я зашёл в main.cpp и нашел, например, это:
bool GlooxMessageHandler::handleIq (const IQ &iq) {
	Tag *tag = iq.tag();
	if (!tag)
		return true;
	User *user = (User *) GlooxMessageHandler::instance()->userManager()->getUserByJID(iq.from().bare());
	if (user) {
		user->handleRosterResponse(tag);
	}
	delete tag;
	return true;
}

void GlooxMessageHandler::handleIqID (const IQ &iq, int context) {
	
}
Я конечно попробую поковырять код, но т.к. проблема по видимости имеет нулевое распространение (или околонулевое?), следует проверить сначала себя. В чем может быть косяк?



Последнее исправление: cetjs2 (всего исправлений: 2)

Ответ на: комментарий от megabaks

Нет, установлена ровно та. По ошибке вообще-то вполне видно, что дело во флагах компиляции, а не в чем-либо ещё

botater
() автор топика
Ответ на: комментарий от botater

да, -l -L флаги компиляции, но о проблеме тебе сказали выше

anonymous
()
Ответ на: комментарий от botater

По ошибке вообще-то вполне видно, что дело во флагах компиляции, а не в чем-либо ещё

ну, раз ты сам все видишь по ошибке, то чего же ты здесь спрашиваешь?

anonymous
()
Ответ на: комментарий от anonymous

Так я уже разобрался :) Дело и было во флагах, -O3 -> -O1 исправило ситуацию

botater
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.