Ich versuche, eine .so-Datei der Kamera-Bibliothek dynamisch in eine ausführbare Linux-Datei zu laden, um Zugriff auf einfache Kamerafunktionen zu erhalten.Der Zugriff auf .so-Bibliotheken mit dlopen() löst einen undefinierten Symbolfehler aus
Ich bin versucht, dies zu tun durch:
if ((newHandle = dlopen("./libCamera.so",RTLD_LAZY | RTLD_GLOBAL)) == NULL)
{
printf("Could not open file : %s\n", dlerror());
return 1;
}
jedoch dies nicht gelingt und ich erhalte die folgende Ausgabe: "Datei kann nicht geöffnet: libCamera.so: undefined Symbol: ZTVN10 _cxxabiv117__class_type_infoE"
Wie finde ich heraus, auf welche Symbole es sich stützt?
Ich sah eine Funktion in 'nm -DC libCamera.so' aufgelistet, aber es war immer noch undefiniert. Am Ende stellte sich heraus, dass in der .h-Datei eines der Argumente const & in der .cpp-Datei nicht const war, was dazu führte, dass es nicht definiert war. –