• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

TFS 1.X+ Compiling in linux

Switch

New Member
Joined
Oct 27, 2020
Messages
21
Reaction score
3

I created a new class in a separate file Pokemon.h / .cpp.
But when the server compiles the server, Cmake is not loading this file that I created, in the end it shows the errors below


How do I make CMake find and create my file?​

HTML:
[ 52%] Building CXX object CMakeFiles/tfs.dir/src/monsters.cpp.o
[ 53%] Building CXX object CMakeFiles/tfs.dir/src/mounts.cpp.o
[ 55%] Building CXX object CMakeFiles/tfs.dir/src/movement.cpp.o
[ 56%] Building CXX object CMakeFiles/tfs.dir/src/networkmessage.cpp.o
[ 57%] Building CXX object CMakeFiles/tfs.dir/src/npc.cpp.o
[ 58%] Building CXX object CMakeFiles/tfs.dir/src/otserv.cpp.o
[ 60%] Building CXX object CMakeFiles/tfs.dir/src/outfit.cpp.o
[ 61%] Building CXX object CMakeFiles/tfs.dir/src/outputmessage.cpp.o
[ 62%] Building CXX object CMakeFiles/tfs.dir/src/party.cpp.o
[ 63%] Building CXX object CMakeFiles/tfs.dir/src/player.cpp.o
[ 65%] Building CXX object CMakeFiles/tfs.dir/src/position.cpp.o
[ 66%] Building CXX object CMakeFiles/tfs.dir/src/protocol.cpp.o
[ 67%] Building CXX object CMakeFiles/tfs.dir/src/protocolgame.cpp.o
[ 68%] Building CXX object CMakeFiles/tfs.dir/src/protocollogin.cpp.o
[ 70%] Building CXX object CMakeFiles/tfs.dir/src/protocolold.cpp.o
[ 71%] Building CXX object CMakeFiles/tfs.dir/src/protocolstatus.cpp.o
[ 72%] Building CXX object CMakeFiles/tfs.dir/src/quests.cpp.o
[ 73%] Building CXX object CMakeFiles/tfs.dir/src/raids.cpp.o
[ 75%] Building CXX object CMakeFiles/tfs.dir/src/rsa.cpp.o
[ 76%] Building CXX object CMakeFiles/tfs.dir/src/scheduler.cpp.o
[ 77%] Building CXX object CMakeFiles/tfs.dir/src/scriptmanager.cpp.o
[ 78%] Building CXX object CMakeFiles/tfs.dir/src/script.cpp.o
[ 80%] Building CXX object CMakeFiles/tfs.dir/src/server.cpp.o
[ 81%] Building CXX object CMakeFiles/tfs.dir/src/signals.cpp.o
[ 82%] Building CXX object CMakeFiles/tfs.dir/src/spawn.cpp.o
[ 83%] Building CXX object CMakeFiles/tfs.dir/src/spells.cpp.o
[ 85%] Building CXX object CMakeFiles/tfs.dir/src/storeinbox.cpp.o
[ 86%] Building CXX object CMakeFiles/tfs.dir/src/talkaction.cpp.o
[ 87%] Building CXX object CMakeFiles/tfs.dir/src/tasks.cpp.o
[ 88%] Building CXX object CMakeFiles/tfs.dir/src/teleport.cpp.o
[ 90%] Building CXX object CMakeFiles/tfs.dir/src/thing.cpp.o
[ 91%] Building CXX object CMakeFiles/tfs.dir/src/tile.cpp.o
[ 92%] Building CXX object CMakeFiles/tfs.dir/src/tools.cpp.o
[ 93%] Building CXX object CMakeFiles/tfs.dir/src/trashholder.cpp.o
[ 95%] Building CXX object CMakeFiles/tfs.dir/src/vocation.cpp.o
[ 96%] Building CXX object CMakeFiles/tfs.dir/src/weapons.cpp.o
[ 97%] Building CXX object CMakeFiles/tfs.dir/src/wildcardtree.cpp.o
[ 98%] Building CXX object CMakeFiles/tfs.dir/src/xtea.cpp.o
[100%] Linking CXX executable tfs
/usr/bin/ld: /tmp/ccA8ctNa.ltrans4.ltrans.o: na função "Game::playerMoveItem(Player*, Position const&, unsigned short, unsigned char, Position const&, unsigned char, Item*, Cylinder*)":
<artificial>:(.text+0x8c305): referência não definida para "Pokeball::getPokemon()"
/usr/bin/ld: <artificial>:(.text+0x8c442): referência não definida para "Pokeball::getPokemon()"
/usr/bin/ld: /tmp/ccA8ctNa.ltrans4.ltrans.o: na função "Item::CreateItem(unsigned short, unsigned short)":
<artificial>:(.text+0x100c13): referência não definida para "Pokeball::Pokeball(unsigned short)"
/usr/bin/ld: /tmp/ccA8ctNa.ltrans4.ltrans.o: na função "LuaScriptInterface::luaPokeballGetPokemonName(lua_State*)":
<artificial>:(.text+0x1af005): referência não definida para "Pokeball::getPokemonName[abi:cxx11]()"
/usr/bin/ld: /tmp/ccA8ctNa.ltrans4.ltrans.o: na função "LuaScriptInterface::luaPokeballSetPokemonName(lua_State*)":
<artificial>:(.text+0x1af0ec): referência não definida para "Pokeball::setPokemonName(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)"
/usr/bin/ld: /tmp/ccA8ctNa.ltrans4.ltrans.o: na função "LuaScriptInterface::luaPokeballGetLevel(lua_State*)":
<artificial>:(.text+0x1af19e): referência não definida para "Pokeball::getLevel()"
/usr/bin/ld: /tmp/ccA8ctNa.ltrans4.ltrans.o: na função "LuaScriptInterface::luaPokeballSetLevel(lua_State*)":
<artificial>:(.text+0x1af24b): referência não definida para "Pokeball::setLevel(unsigned int)"
/usr/bin/ld: /tmp/ccA8ctNa.ltrans4.ltrans.o: na função "LuaScriptInterface::luaPokeballGetExperience(lua_State*)":
<artificial>:(.text+0x1af298): referência não definida para "Pokeball::getExperience()"
/usr/bin/ld: /tmp/ccA8ctNa.ltrans4.ltrans.o: na função "LuaScriptInterface::luaPokeballSetExperience(lua_State*)":
<artificial>:(.text+0x1af346): referência não definida para "Pokeball::setExperience(unsigned long)"
/usr/bin/ld: /tmp/ccA8ctNa.ltrans4.ltrans.o: na função "LuaScriptInterface::luaPokeballGetHealth(lua_State*)":
<artificial>:(.text+0x1af394): referência não definida para "Pokeball::getHealth()"
/usr/bin/ld: /tmp/ccA8ctNa.ltrans4.ltrans.o: na função "LuaScriptInterface::luaPokeballSetHealth(lua_State*)":
<artificial>:(.text+0x1af419): referência não definida para "Pokeball::setHealth(int)"
/usr/bin/ld: /tmp/ccA8ctNa.ltrans4.ltrans.o: na função "LuaScriptInterface::luaPokeballGetMaxHealth(lua_State*)":
<artificial>:(.text+0x1af466): referência não definida para "Pokeball::getMaxHealth()"
/usr/bin/ld: /tmp/ccA8ctNa.ltrans4.ltrans.o: na função "LuaScriptInterface::luaPokeballSetMaxHealth(lua_State*)":
<artificial>:(.text+0x1af4eb): referência não definida para "Pokeball::setMaxHealth(int)"
/usr/bin/ld: /tmp/ccA8ctNa.ltrans4.ltrans.o: na função "LuaScriptInterface::luaPokeballGetPokemon(lua_State*)":
<artificial>:(.text+0x1af548): referência não definida para "Pokeball::getPokemon()"
/usr/bin/ld: <artificial>:(.text+0x1af569): referência não definida para "Pokeball::getPokemon()"
/usr/bin/ld: /tmp/ccA8ctNa.ltrans4.ltrans.o: na função "LuaScriptInterface::luaPokeballSetPokemon(lua_State*)":
<artificial>:(.text+0x1af684): referência não definida para "Pokeball::setPokemon(Monster*)"
/usr/bin/ld: /tmp/ccA8ctNa.ltrans4.ltrans.o: na função "LuaScriptInterface::luaPokeballAddLearnedSpell(lua_State*)":
<artificial>:(.text+0x1af70d): referência não definida para "Pokeball::addLearnedInstantSpell(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)"
/usr/bin/ld: /tmp/ccA8ctNa.ltrans4.ltrans.o: na função "LuaScriptInterface::luaPokeballGetLearnedSpells(lua_State*)":
<artificial>:(.text+0x1af7b1): referência não definida para "Pokeball::getLearnedInstantSpells[abi:cxx11]()"
/usr/bin/ld: <artificial>:(.text+0x1af7e1): referência não definida para "Pokeball::getLearnedInstantSpells[abi:cxx11]()"
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/tfs.dir/build.make:1493: tfs] Erro 1
make[1]: *** [CMakeFiles/Makefile2:102: CMakeFiles/tfs.dir/all] Erro 2
make: *** [Makefile:91: all] Erro 2
 
You must compile Pokemon.cpp and link it against tfs. Therefore, find the CMakeLists.txt file located in the src directory of your project and add the following line:
Code:
set(tfs_SRC
    ${CMAKE_CURRENT_LIST_DIR}/actions.cpp
    ${CMAKE_CURRENT_LIST_DIR}/ban.cpp
    ${CMAKE_CURRENT_LIST_DIR}/baseevents.cpp
    // ...
    ${CMAKE_CURRENT_LIST_DIR}/Pokemon.cpp // <-- add this line
}
Then, do the usual rm -rf build && mkdir build && cd build && cmake .. && make -j4.
 
Back
Top