Ошибка компиляции

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Bookkc
Сообщения: 245
ОС: Ubuntu, Gentoo, Debian

Ошибка компиляции

Сообщение Bookkc »

Код: Выделить всё

Built target lualib
[  6%] Built target detour
[ 12%] Built target g3dlib
[ 12%] Built target framework
[ 12%] Built target revision.h
[ 16%] Built target shared
[ 17%] Built target hellgroundrealm
[ 42%] Built target game
Linking CXX executable hellgroundcore
Linking CXX shared library libhellgroundscript.so
/usr/bin/ld: CMakeFiles/hellgroundscript.dir/scripts/special/guards.cpp.o: relocation R_386_GOTOFF against undefined symbol `_ZStL8__ioinit' can not be used when making a shared object
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
src/scripts/CMakeFiles/hellgroundscript.dir/build.make:9685: recipe for target 'src/scripts/libhellgroundscript.so.4.2.0' failed
make[2]: *** [src/scripts/libhellgroundscript.so.4.2.0] Error 1
CMakeFiles/Makefile2:631: recipe for target 'src/scripts/CMakeFiles/hellgroundscript.dir/all' failed
make[1]: *** [src/scripts/CMakeFiles/hellgroundscript.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
../game/libgame.a(Player.cpp.o): In function `Player::AddEnchantmentDuration(Item*, EnchantmentSlot, unsigned int)':
/root/core/src/game/Player.cpp:12174: undefined reference to `WorldSession::SendItemEnchantTimeUpdate(unsigned long long, unsigned long long, unsigned int, unsigned int)'
../game/libgame.a(Player.cpp.o): In function `Player::SendEnchantmentDurations()':
/root/core/src/game/Player.cpp:12537: undefined reference to `WorldSession::SendItemEnchantTimeUpdate(unsigned long long, unsigned long long, unsigned int, unsigned int)'
../game/libgame.a(LuaFunctions.cpp.o): In function `LuaPlayer::SendListInventory(lua_State*, Player*)':
/root/core/src/game/luaengine/PlayerMethods.h:153: undefined reference to `WorldSession::SendListInventory(unsigned long long)'
../game/libgame.a(LuaFunctions.cpp.o): In function `LuaPlayer::SendVendorWindow(lua_State*, Player*)':
/root/core/src/game/luaengine/PlayerMethods.h:1659: undefined reference to `WorldSession::SendListInventory(unsigned long long)'
../game/libgame.a(Map.cpp.o): In function `Map::EnsureGridLoaded(Cell const&)':
/root/core/src/game/Map.cpp:331: undefined reference to `ObjectGridLoader::LoadN()'
../game/libgame.a(Map.cpp.o): In function `Stop<ObjectGridCleaner>':
/root/core/src/framework/GameSystem/GridLoader.h:65: undefined reference to `ObjectGridCleaner::Stop(Grid<Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<Camera, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&)'
/root/core/src/framework/GameSystem/GridLoader.h:65: undefined reference to `ObjectGridCleaner::Stop(Grid<Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<Camera, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&)'
/root/core/src/framework/GameSystem/GridLoader.h:65: undefined reference to `ObjectGridCleaner::Stop(Grid<Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<Camera, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&)'
/root/core/src/framework/GameSystem/GridLoader.h:65: undefined reference to `ObjectGridCleaner::Stop(Grid<Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<Camera, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&)'
/root/core/src/framework/GameSystem/GridLoader.h:65: undefined reference to `ObjectGridCleaner::Stop(Grid<Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<Camera, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&)'
../game/libgame.a(Map.cpp.o): In function `Unload<ObjectGridUnloader>':
/root/core/src/framework/GameSystem/GridLoader.h:74: undefined reference to `ObjectGridUnloader::Unload(Grid<Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<Camera, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&)'
/root/core/src/framework/GameSystem/GridLoader.h:74: undefined reference to `ObjectGridUnloader::Unload(Grid<Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<Camera, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&)'
/root/core/src/framework/GameSystem/GridLoader.h:74: undefined reference to `ObjectGridUnloader::Unload(Grid<Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<Camera, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&)'
/root/core/src/framework/GameSystem/GridLoader.h:74: undefined reference to `ObjectGridUnloader::Unload(Grid<Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<Camera, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&)'
/root/core/src/framework/GameSystem/GridLoader.h:74: undefined reference to `ObjectGridUnloader::Unload(Grid<Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<Camera, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&)'
../game/libgame.a(Map.cpp.o):/root/core/src/framework/GameSystem/GridLoader.h:74: more undefined references to `ObjectGridUnloader::Unload(Grid<Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<Camera, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&)' follow
../game/libgame.a(Map.cpp.o): In function `Map::UnloadGrid(unsigned int const&, unsigned int const&, bool)':
/root/core/src/game/Map.cpp:861: undefined reference to `ObjectGridUnloader::MoveToRespawnN()'
../game/libgame.a(Creature.cpp.o): In function `Creature::OnGossipSelect(Player*, unsigned int)':
/root/core/src/game/Creature.cpp:1092: undefined reference to `WorldSession::SendListInventory(unsigned long long)'
../game/libgame.a(GridStates.cpp.o): In function `Stop<ObjectGridStoper>':
/root/core/src/framework/GameSystem/GridLoader.h:65: undefined reference to `ObjectGridStoper::Stop(Grid<Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<Camera, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&)'
/root/core/src/framework/GameSystem/GridLoader.h:65: undefined reference to `ObjectGridStoper::Stop(Grid<Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<Camera, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&)'
/root/core/src/framework/GameSystem/GridLoader.h:65: undefined reference to `ObjectGridStoper::Stop(Grid<Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<Camera, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&)'
/root/core/src/framework/GameSystem/GridLoader.h:65: undefined reference to `ObjectGridStoper::Stop(Grid<Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<Camera, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&)'
/root/core/src/framework/GameSystem/GridLoader.h:65: undefined reference to `ObjectGridStoper::Stop(Grid<Player, TypeList<Player, TypeList<Creature, TypeList<Corpse, TypeList<Camera, TypeNull> > > >, TypeList<GameObject, TypeList<Creature, TypeList<DynamicObject, TypeList<Corpse, TypeNull> > > > >&)'
../game/libgame.a(Opcodes.cpp.o):(.data+0x6c4): undefined reference to `WorldSession::HandleItemQuerySingleOpcode(WorldPacket&)'
../game/libgame.a(Opcodes.cpp.o):(.data+0xd90): undefined reference to `WorldSession::HandleReadItem(WorldPacket&)'
../game/libgame.a(Opcodes.cpp.o):(.data+0x14d4): undefined reference to `WorldSession::HandleAutoEquipItemOpcode(WorldPacket&)'
../game/libgame.a(Opcodes.cpp.o):(.data+0x14e8): undefined reference to `WorldSession::HandleAutoStoreBagItemOpcode(WorldPacket&)'
../game/libgame.a(Opcodes.cpp.o):(.data+0x14fc): undefined reference to `WorldSession::HandleSwapItem(WorldPacket&)'
../game/libgame.a(Opcodes.cpp.o):(.data+0x1510): undefined reference to `WorldSession::HandleSwapInvItemOpcode(WorldPacket&)'
../game/libgame.a(Opcodes.cpp.o):(.data+0x1524): undefined reference to `WorldSession::HandleSplitItemOpcode(WorldPacket&)'
../game/libgame.a(Opcodes.cpp.o):(.data+0x1538): undefined reference to `WorldSession::HandleAutoEquipItemSlotOpcode(WorldPacket&)'
../game/libgame.a(Opcodes.cpp.o):(.data+0x1560): undefined reference to `WorldSession::HandleDestroyItemOpcode(WorldPacket&)'
../game/libgame.a(Opcodes.cpp.o):(.data+0x2064): undefined reference to `WorldSession::HandleListInventoryOpcode(WorldPacket&)'
../game/libgame.a(Opcodes.cpp.o):(.data+0x208c): undefined reference to `WorldSession::HandleSellItemOpcode(WorldPacket&)'
../game/libgame.a(Opcodes.cpp.o):(.data+0x20b4): undefined reference to `WorldSession::HandleBuyItemOpcode(WorldPacket&)'
../game/libgame.a(Opcodes.cpp.o):(.data+0x20c8): undefined reference to `WorldSession::HandleBuyItemInSlotOpcode(WorldPacket&)'
../game/libgame.a(Opcodes.cpp.o):(.data+0x2280): undefined reference to `WorldSession::HandleBuyBankSlotOpcode(WorldPacket&)'
../game/libgame.a(Opcodes.cpp.o):(.data+0x2488): undefined reference to `WorldSession::HandleWrapItemOpcode(WorldPacket&)'
../game/libgame.a(Opcodes.cpp.o):(.data+0x302c): undefined reference to `WorldSession::HandleSetAmmoOpcode(WorldPacket&)'
../game/libgame.a(Opcodes.cpp.o):(.data+0x3234): undefined reference to `WorldSession::HandleAutoStoreBankItemOpcode(WorldPacket&)'
../game/libgame.a(Opcodes.cpp.o):(.data+0x3248): undefined reference to `WorldSession::HandleAutoBankItemOpcode(WorldPacket&)'
../game/libgame.a(Opcodes.cpp.o):(.data+0x334c): undefined reference to `WorldSession::HandleBuybackItem(WorldPacket&)'
../game/libgame.a(Opcodes.cpp.o):(.data+0x375c): undefined reference to `WorldSession::HandleItemNameQueryOpcode(WorldPacket&)'
../game/libgame.a(Opcodes.cpp.o):(.data+0x4198): undefined reference to `WorldSession::HandleSocketOpcode(WorldPacket&)'
../game/libgame.a(Opcodes.cpp.o):(.data+0x4580): undefined reference to `WorldSession::HandleCancelTempItemEnchantmentOpcode(WorldPacket&)'
collect2: error: ld returned 1 exit status
src/hellgroundcore/CMakeFiles/hellgroundcore.dir/build.make:173: recipe for target 'src/hellgroundcore/hellgroundcore' failed
make[2]: *** [src/hellgroundcore/hellgroundcore] Error 1
CMakeFiles/Makefile2:687: recipe for target 'src/hellgroundcore/CMakeFiles/hellgroundcore.dir/all' failed
make[1]: *** [src/hellgroundcore/CMakeFiles/hellgroundcore.dir/all] Error 2
Makefile:117: recipe for target 'all' failed
make: *** [all] Error 2
собственно вот... помогите разобраться почему так? дошла компила до 99% и такие вензеля(( Помогите решить, в винде всё ок собралось
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21433
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Ошибка компиляции

Сообщение Bizdelnick »

Что-то забыли прилинковать. Или, если линковщик очень старый и тупой, дело может быть в том, что файлы линкуются в неправильном порядке.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Bookkc
Сообщения: 245
ОС: Ubuntu, Gentoo, Debian

Re: Ошибка компиляции

Сообщение Bookkc »

да я вроде ничего и не линковал.

cmake ../ && make -j 2
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3697
ОС: Mandriva => Gentoo (~amd64)

Re: Ошибка компиляции

Сообщение devilr »

Или в системе библиотеки более старые, чем в оффтопике. Те, которые линкуются.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21433
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Ошибка компиляции

Сообщение Bizdelnick »

Bookkc писал(а):
21.06.2018 15:52
да я вроде ничего и не линковал.
Ну как же не линковали:
Bookkc писал(а):
21.06.2018 13:44
Linking CXX shared library libhellgroundscript.so
Ошибка, конечно, не Ваша, но от этого ошибкой она быть не перестаёт.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: Ошибка компиляции

Сообщение s.xbatob »

Bizdelnick писал:
21.06.2018 14:47
Что-то забыли прилинковать. Или, если линковщик очень старый и тупой, дело может быть в том, что файлы линкуются в неправильном порядке.
Это вряд ли. Неопределённый символ - это std::__ioinit
Если в проекте нет двоичных файлов или библиотек, то это совсем плохо: что-то в системе друг другу не соответствует.
Спасибо сказали:
Аватара пользователя
Evil_Genius
Сообщения: 92
ОС: Fedora

Re: Ошибка компиляции

Сообщение Evil_Genius »

А cmake не писал ни каких предупреждений, что что-то не найдено? В readme указаны какие-то зависимости?

А вообще вы уверены что этого нет в репозиториях? Что вам нужно именно из исходников собирать?
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 3166
ОС: Gentoo

Re: Ошибка компиляции

Сообщение ormorph »

Когда то уже описывал как надо искать решение данной ошибки тыц.
Раз возникла ошибка:

Shell

undefined reference to
Значит у вас система собиралась с исходников, например недавно обновили libc или gcc.
В результате некоторые связи с библиотеками поломались, библиотека с искомой функцией может и присутствует, но данная библиотека требует пере сборки новым компилятором под новой glibc.
Если это делаете в gentoo, то после обновления компилятора, рекомендуется выполнить:

Shell

# revdep-rebuild --library 'libstdc++.so.6' -- --exclude gcc
Входит в состав пакета app-portage/gentoolkit.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21433
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Ошибка компиляции

Сообщение Bizdelnick »

s.xbatob писал:
21.06.2018 20:00
Неопределённый символ - это std::__ioinit
Хм, на эту ошибку я внимания не обратил. С таким сталкиваться не приходилось.

Информации маловато. Нужен полный лог, причём для cmake надо добавить опцию -DCMAKE_VERBOSE_MAKEFILE. И исходники бы глянуть, если есть возможность.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали: