Cześć,
Potrzebuje zrobić bibliotekę, która będzie pośredniczyć między dwoma bibliotekami. Dokładnie chodzi o to, że mam bibliotekę wyższego poziomu, która używa biblioteki niższego poziomu. Ja z moim produktem chciałbym wejść pomiędzy te dwie biblioteki - zaimplementować wszystkie funkcje biblioteki niższego poziomu dodając od siebie kilka dodatków. Problem w tym, że nie wiem jak skompilować coś takiego, żeby nie było problemów z powtarzającymi się nazwami funkcji.
Przykładowa funkcja:
void function(void) {
do_something();
function(); // biblioteka niższego poziomu
}
na razie wymyśliłem tylko, że mógłbym opakować funkcje z biblioteki niższego poziomu poprzez zmiane ich nazw, np.
void wrap_function(void) {
function();
}
i potem używać takiego opakowania w pośredniczącej bibliotece:
void function(void) {
wrap_function();
}
Jednak jak próbuje coś takiego uruchomić dostaje Segmentation fault, bo funkcje się zapętlają:
(gdb) bt
#0 nfc_version () at main.c:5
#1 0x00000000004011fb in wrap_nfc_version ()
#2 0x0000000000400ddd in nfc_version () at main.c:5
#3 0x00000000004011fb in wrap_nfc_version ()
#4 0x0000000000400ddd in nfc_version () at main.c:5
#5 0x00000000004011fb in wrap_nfc_version ()
#6 0x0000000000400ddd in nfc_version () at main.c:5
#7 0x00000000004011fb in wrap_nfc_version ()
#8 0x0000000000400ddd in nfc_version () at main.c:5
#9 0x00000000004011fb in wrap_nfc_version ()
#10 0x0000000000400ddd in nfc_version () at main.c:5
#11 0x00000000004011fb in wrap_nfc_version ()
#12 0x0000000000400ddd in nfc_version () at main.c:5
#13 0x00000000004011fb in wrap_nfc_version ()
#14 0x0000000000400ddd in nfc_version () at main.c:5
(...)
Może ktoś miałby jakiś pomysł jak to obejść ?