Pri novijim verzijama Ubuntu distribucije (isprobane 20.04 i 22.04) dolazilo je do problema s naredbom make te na tim verzijama nisam uspio niti buildati sustav. U konzoli se prilikom pokretanja naredbe make ispisuje puno grešaka, ovo je skraćeni popis samo nekih od njih:
/usr/bin/ld: sql/trigger.o:/home/david/akdb/akdb/akdb/src/sql/../rec/../file/../mm/../dm/../auxi/mempro.h:176: multiple definition of `AK_DEBMOD_STATE'; auxi/mempro.o:/home/david/akdb/akdb/akdb/src/auxi/mempro.h:176: first defined here/usr/bin/ld: file/test.o:/home/david/akdb/akdb/akdb/src/file/../mm/../dm/../auxi/mempro.h:176: multiple definition of `AK_DEBMOD_STATE'; auxi/mempro.o:/home/david/akdb/akdb/akdb/src/auxi/mempro.h:176: first defined here/usr/bin/ld: file/test.o:/home/david/akdb/akdb/akdb/src/file/../mm/../dm/../auxi/auxiliary.h:47: multiple definition of `testMode'; sql/trigger.o:/home/david/akdb/akdb/akdb/src/sql/../rec/../file/../mm/../dm/../auxi/auxiliary.h:47: first defined here/usr/bin/ld: file/test.o:/home/david/akdb/akdb/akdb/src/file/../mm/../dm/dbman.h:120: multiple definition of `db'; sql/trigger.o:/home/david/akdb/akdb/akdb/src/sql/../rec/../file/../mm/../dm/dbman.h:120: first defined here
...
/usr/bin/ld: main.o:/home/david/akdb/akdb/akdb/src/mm/memoman.h:160: multiple definition of `db_cache'; sql/trigger.o:/home/david/akdb/akdb/akdb/src/sql/../rec/../file/../mm/memoman.h:160: first defined here/usr/bin/ld: main.o:/home/david/akdb/akdb/akdb/src/mm/memoman.h:165: multiple definition of `redo_log'; sql/trigger.o:/home/david/akdb/akdb/akdb/src/sql/../rec/../file/../mm/memoman.h:165: first defined here/usr/bin/ld: main.o:/home/david/akdb/akdb/akdb/src/mm/memoman.h:170: multiple definition of `query_mem'; sql/trigger.o:/home/david/akdb/akdb/akdb/src/sql/../rec/../file/../mm/memoman.h:170: first defined herecollect2: error: ld returned 1 exit status
Iz ispisa dalo se zaključiti o kojim datotekama se radi pa sam ih provjerio. Ono što je uzrok greške jest nedostatka ključnih riječi extern u .h datotekama te deklariranje globalnih varijabli u .c datotekama, a ne u .h datotekama.
Zahvaćene datoteke:
auxiliary.h
mempro.h
dbman.h
memoman.h
Problemi s pokretanjem servera
Nakon izvršavanja naredbi make i make swig, skripta server.py u srv direktoriju ne bi se htjela pokretati zbog sljedeće greške:
Vjerujem da je problem u tome što je funkcija AK_get_function_details_by_obj_id samo deklarirana u sql/function.h, ali nigdje nije korištena. Komentiranje tog dijela koda (barem privremeno dok se funkcionalnost ne implementira u sql/function.c) razrješuje problem, nakon čega bi se server.py trebao moći izvršiti.
Napomena: nakon što se taj dio kôda zakomentira, potrebno je ponovo pokrenuti naredbe make clean-d i make clean te zatim make i make swig.
Testirano na:
Problemi s naredbom
make
Pri novijim verzijama Ubuntu distribucije (isprobane 20.04 i 22.04) dolazilo je do problema s naredbom
make
te na tim verzijama nisam uspio niti buildati sustav. U konzoli se prilikom pokretanja naredbemake
ispisuje puno grešaka, ovo je skraćeni popis samo nekih od njih:/usr/bin/ld: sql/trigger.o:/home/david/akdb/akdb/akdb/src/sql/../rec/../file/../mm/../dm/../auxi/mempro.h:176: multiple definition of `AK_DEBMOD_STATE'; auxi/mempro.o:/home/david/akdb/akdb/akdb/src/auxi/mempro.h:176: first defined here
/usr/bin/ld: file/test.o:/home/david/akdb/akdb/akdb/src/file/../mm/../dm/../auxi/mempro.h:176: multiple definition of `AK_DEBMOD_STATE'; auxi/mempro.o:/home/david/akdb/akdb/akdb/src/auxi/mempro.h:176: first defined here
/usr/bin/ld: file/test.o:/home/david/akdb/akdb/akdb/src/file/../mm/../dm/../auxi/auxiliary.h:47: multiple definition of `testMode'; sql/trigger.o:/home/david/akdb/akdb/akdb/src/sql/../rec/../file/../mm/../dm/../auxi/auxiliary.h:47: first defined here
/usr/bin/ld: file/test.o:/home/david/akdb/akdb/akdb/src/file/../mm/../dm/dbman.h:120: multiple definition of `db'; sql/trigger.o:/home/david/akdb/akdb/akdb/src/sql/../rec/../file/../mm/../dm/dbman.h:120: first defined here
...
/usr/bin/ld: main.o:/home/david/akdb/akdb/akdb/src/mm/memoman.h:160: multiple definition of `db_cache'; sql/trigger.o:/home/david/akdb/akdb/akdb/src/sql/../rec/../file/../mm/memoman.h:160: first defined here
/usr/bin/ld: main.o:/home/david/akdb/akdb/akdb/src/mm/memoman.h:165: multiple definition of `redo_log'; sql/trigger.o:/home/david/akdb/akdb/akdb/src/sql/../rec/../file/../mm/memoman.h:165: first defined here
/usr/bin/ld: main.o:/home/david/akdb/akdb/akdb/src/mm/memoman.h:170: multiple definition of `query_mem'; sql/trigger.o:/home/david/akdb/akdb/akdb/src/sql/../rec/../file/../mm/memoman.h:170: first defined here
collect2: error: ld returned 1 exit status
Iz ispisa dalo se zaključiti o kojim datotekama se radi pa sam ih provjerio. Ono što je uzrok greške jest nedostatka ključnih riječi
extern
u .h datotekama te deklariranje globalnih varijabli u .c datotekama, a ne u .h datotekama.Zahvaćene datoteke:
Problemi s pokretanjem servera
Nakon izvršavanja naredbi
make
imake swig
, skripta server.py u srv direktoriju ne bi se htjela pokretati zbog sljedeće greške:ImportError: /home/david/novo akdb/akdb/akdb/src/srv/../swig/_kalashnikovDB.cpython-310-x86_64-linux-gnu.so: undefined symbol: AK_get_function_details_by_obj_id
Vjerujem da je problem u tome što je funkcija
AK_get_function_details_by_obj_id
samo deklarirana u sql/function.h, ali nigdje nije korištena. Komentiranje tog dijela koda (barem privremeno dok se funkcionalnost ne implementira u sql/function.c) razrješuje problem, nakon čega bi se server.py trebao moći izvršiti.Napomena: nakon što se taj dio kôda zakomentira, potrebno je ponovo pokrenuti naredbe
make clean-d
imake clean
te zatimmake
imake swig
.