uhulinux / ub-ubk3

64bit-only repo
1 stars 0 forks source link

wesnoth nem frissíthető: link error #98

Closed attuska closed 3 years ago

attuska commented 3 years ago

Bármelyik újabb verzió így végzi:

g++ -o wesnoth -Wl,-rpath,/usr/lib -Wl,--enable-new-dtags -pthread -fPIE -pie -Wl,-z,relro,-z,now -L/usr/lib/libgobject-2.0.so.0.6200.0 -Wl,--whole-archive build/release/libwesnoth-widgets.a -Wl,--no-whole-archive build/release/wesnoth.o build/release/libwesnoth-client.a build/release/liblua.a build/release/libwesnoth-core.a build/release/libwesnoth-game.a build/release/libwesnoth-sdl.a build/release/libwesnoth-client.a -lboost_regex -lboost_filesystem -lboost_locale -lboost_thread -lboost_coroutine -lboost_context -lboost_system -lboost_random -lboost_program_options -lboost_iostreams -lm -lpthread -licudata -licui18n -licuuc -lcrypto -lSDL2 -lSDL2_ttf -lSDL2_mixer -lSDL2_image -lvorbisfile -lpangocairo-1.0 -lpango-1.0 -lcairo -lfontconfig -lfreetype -lX11 -ldbus-1 -lfribidi /bin/ld: build/release/libwesnoth-game.a(text.o): undefined reference to symbol 'g_object_unref' /bin/ld: /usr/lib/libgobject-2.0.so.0: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status

Akkor is, ha bármely módon adom meg (-L/usr/lib/libgobject-2.0.so.0.6200.0), vagy a pkg-config segítségével a szimbólumot tartalmazó fájlt. Ezt a kért szimbólumot a glib és gobject-inrospection is szállítja. Szerintem a glib csomagban van a hiba. UBK1 és UBK4 esetén nincs link hiba, a wesnoth frissíthető a legújabbra.

rezso commented 3 years ago

Ilyen hibaüzenetet a wesnoth alapból biztosan nem ad. Eleve a -L/usr/lib/libgobject-2.0.so.0.6200.0 nem működik. Két CMakeLists.txt módosításával szerintem megoldható. Amúgy emlékeim szerint a pango-nál volt olyan gond, hogy nem volt függősége a glib.

rezso commented 3 years ago

Próbáld meg ezzel: link-glib.patch.txt

attuska commented 3 years ago

A kissé módosított folttal (csak az új verzóhoz passzítva) is linkelési hiba van.

[2306/2306] Linking CXX executable wesnoth FAILED: wesnoth : && /usr/lib/ccache/c++ -std=c++11 -Wall -Wextra -Werror=non-virtual-dtor -Wno-unused-local-typedefs -Wno-maybe-uninitialized -Wold-style-cast -DBOOST_BIND_GLOBAL_PLACEHOLDERS -fPIE -O2 -fPIE -pie -Wl,-z,relro,-z,now src/CMakeFiles/wesnoth.dir/wesnoth.cpp.o -o wesnoth src/libwesnoth-client.a src/liblua.a src/libwesnoth-core.a src/libwesnoth-game.a src/libwesnoth-sdl.a -Wl,--whole-archive src/libwesnoth-widgets.a -Wl,--no-whole-archive src/libwesnoth-client.a -lSDL2 -lpthread -lboost_iostreams -lboost_regex -lboost_program_options -lboost_filesystem -lboost_locale -licudata -licui18n -licuuc -lcrypto -lboost_system -lboost_random -lboost_thread -lSDL2_image -lSDL2_mixer -lSDL2_ttf -lpangocairo-1.0 -lpango-1.0 -lcairo -lfontconfig -lfreetype -ldbus-1 -lvorbisfile -lfribidi -lSM -lICE -lX11 -lXext && : /bin/ld: src/libwesnoth-game.a(text.cpp.o): undefined reference to symbol 'g_object_unref' /bin/ld: /usr/lib/libgobject-2.0.so.0: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed. Error: HIBA a(z) compile fazisban.

Ha az export LDFLAGS+='-lgio-2.0' -t adom meg ugyanez a hiba van. Ha az export LDFLAGS+='-lglib-2.0' -t, akkor is. Ha mind a kettőt, akkor is. Ha 'pkg-config --libs glib' , vagy a pkg-config --libs gio' segítségével, akkor is. Ha cmake helyett a scons -t használom, akkor is.

rezso commented 3 years ago

Rájöttem, mi a hiba, nekem már lefordul.

link-glib.patch.txt

Plusz bettem a build-dependsbe a readline-dev csomagot.

attuska commented 3 years ago

Én meg lezárom az issue-t. https://github.com/uhulinux/ub-ubk3/commit/6a84dda9ad7b1082acd05c63e33ed1d38af27844