GlPortal / glPortal

:video_game: Open Source teleportation based first person puzzle-platformer
http://glportal.de
Other
359 stars 109 forks source link

GlPortal: Windows Version of the game #178

Closed ghost closed 2 years ago

ghost commented 3 years ago
hhirsch commented 3 years ago

@Dimiz It builds quite far but on my machine I get /usr/bin/ld: ../external/RadixEngine/libGLAD.a(glad.c.o): undefined reference to symbol 'dlclose@@GLIBC_2.2.5' /usr/bin/ld: /usr/lib/libdl.so.2: error adding symbols: DSO missing from command line

Seems like a lib version is wrong.

hhirsch commented 3 years ago

I think it needs this patch

index 730b7e1..f24ddad 100644
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
@@ -19,7 +19,7 @@ add_executable(${EXE_NAME}
 )

 target_compile_definitions(${EXE_NAME} PUBLIC ${RADIX_DEFINITIONS})
-target_link_libraries(${EXE_NAME} ${PORTAL_LIBRARIES})
+target_link_libraries(${EXE_NAME} ${PORTAL_LIBRARIES} ${CMAKE_DL_LIBS})
 install(TARGETS ${EXE_NAME} DESTINATION bin)
 add_custom_target(update_assets COMMAND git submodule update --depth 1)
 add_custom_target(run COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${EXE_NAME}${CMAKE_EXECUTABLE_SUFFIX} --datadir ${CMAKE_SOURCE_DIR}/data/ DEPENDS ${EXE_NAME})
hhirsch commented 3 years ago

After above fix I get errors when Linking:


[  2%] Built target RadixEntity
[  2%] Built target versionInfo
[ 55%] Built target RadixEngine
[ 55%] Built target GLAD
[ 57%] Built target json11
[ 63%] Built target VHACD_LIB
[ 87%] Built target angelscript
[ 89%] Built target easy_profiler
Scanning dependencies of target glportal
[ 89%] Building CXX object source/CMakeFiles/glportal.dir/renderer/UiRenderer.cpp.o
[ 89%] Linking CXX executable glportal
/usr/bin/ld: ../external/RadixEngine/libRadixEngine.a(Entity.cpp.o): in function `radix::Entity::~Entity()':
/workdir/external/RadixEngine/source/Entity.cpp:15: undefined reference to `radix::entity::Entity::~Entity()'
/usr/bin/ld: ../external/RadixEngine/libRadixEngine.a(Entity.cpp.o): in function `radix::Entity::~Entity()':
/workdir/external/RadixEngine/source/Entity.cpp:15: undefined reference to `radix::entity::Entity::~Entity()'
/usr/bin/ld: ../external/RadixEngine/libRadixEngine.a(Entity.cpp.o):(.data.rel.ro._ZTIN5radix6EntityE[_ZTIN5radix6EntityE]+0x18): undefined reference to `typeinfo for radix::entity::Entity'
/usr/bin/ld: /usr/bin/ld: DWARF error: could not find variable specification at offset 134ae
../external/RadixEngine/libRadixEngine.a(Config.cpp.o): in function `radix::Config::loadVideoSettings(json11::Json const&)':
/workdir/external/RadixEngine/source/env/Config.cpp:105: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:105: undefined reference to `json11::Json::bool_value() const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:106: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:106: undefined reference to `json11::Json::number_value() const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:107: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:107: undefined reference to `json11::Json::bool_value() const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:108: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:108: undefined reference to `json11::Json::number_value() const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:109: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:109: undefined reference to `json11::Json::number_value() const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:110: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:110: undefined reference to `json11::Json::number_value() const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:111: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:111: undefined reference to `json11::Json::number_value() const'
/usr/bin/ld: ../external/RadixEngine/libRadixEngine.a(Config.cpp.o): in function `radix::Config::loadSoundSettings(json11::Json const&)':
/workdir/external/RadixEngine/source/env/Config.cpp:115: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:115: undefined reference to `json11::Json::bool_value() const'
/usr/bin/ld: ../external/RadixEngine/libRadixEngine.a(Config.cpp.o): in function `radix::Config::loadLoglevelSettings(json11::Json const&)':
/workdir/external/RadixEngine/source/env/Config.cpp:219: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:219: undefined reference to `json11::Json::string_value[abi:cxx11]() const'
/usr/bin/ld: ../external/RadixEngine/libRadixEngine.a(Config.cpp.o): in function `radix::Config::loadKeyboardSettings(json11::Json const&)':
/workdir/external/RadixEngine/source/env/Config.cpp:155: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:155: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:155: undefined reference to `json11::Json::operator[](unsigned long) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:155: undefined reference to `json11::Json::string_value[abi:cxx11]() const'
/usr/bin/ld: ../external/RadixEngine/libRadixEngine.a(Config.cpp.o): in function `radix::Config::loadMouseSettings(json11::Json const&)':
/workdir/external/RadixEngine/source/env/Config.cpp:119: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:119: undefined reference to `json11::Json::number_value() const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:120: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:120: undefined reference to `json11::Json::bool_value() const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:121: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:121: undefined reference to `json11::Json::bool_value() const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:127: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:127: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:127: undefined reference to `json11::Json::operator[](unsigned long) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:127: undefined reference to `json11::Json::string_value[abi:cxx11]() const'
/usr/bin/ld: ../external/RadixEngine/libRadixEngine.a(Config.cpp.o): in function `radix::Config::loadControllerSettings(json11::Json const&)':
/workdir/external/RadixEngine/source/env/Config.cpp:177: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:177: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:177: undefined reference to `json11::Json::operator[](unsigned long) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:177: undefined reference to `json11::Json::string_value[abi:cxx11]() const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:190: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:190: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:190: undefined reference to `json11::Json::number_value() const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:191: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:191: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:191: undefined reference to `json11::Json::number_value() const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:196: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:196: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:196: undefined reference to `json11::Json::number_value() const'
/usr/bin/ld: ../external/RadixEngine/libRadixEngine.a(Config.cpp.o): in function `radix::Config::load()':
/workdir/external/RadixEngine/source/env/Config.cpp:83: undefined reference to `json11::Json::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, json11::JsonParse)'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:85: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:86: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:87: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:88: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:89: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: ../external/RadixEngine/libRadixEngine.a(Config.cpp.o):/workdir/external/RadixEngine/source/env/Config.cpp:91: more undefined references to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const' follow
/usr/bin/ld: ../external/RadixEngine/libRadixEngine.a(Config.cpp.o): in function `radix::Config::load()':
/workdir/external/RadixEngine/source/env/Config.cpp:94: undefined reference to `json11::Json::bool_value() const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:95: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:95: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:95: undefined reference to `json11::Json::bool_value() const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:96: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:96: undefined reference to `json11::Json::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
/usr/bin/ld: /workdir/external/RadixEngine/source/env/Config.cpp:96: undefined reference to `json11::Json::bool_value() const'
collect2: error: ld returned 1 exit status
make[3]: *** [source/CMakeFiles/glportal.dir/build.make:346: source/glportal] Error 1
make[2]: *** [CMakeFiles/Makefile2:1078: source/CMakeFiles/glportal.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:915: source/CMakeFiles/run.dir/rule] Error 2
make: *** [Makefile:417: run] Error ```
hhirsch commented 3 years ago

Different error in the CI https://travis-ci.com/github/GlPortal/glPortal/jobs/397913759

hhirsch commented 3 years ago

So for these errors I don't have a solution. I am stuck.