SWIG: Wenn C ++ für Perl nur mit einem Header und einer gemeinsam genutzten Bibliothek umbrochen wird, kann der Fehler beim Laden eines Objekts nicht gefunden werden

Ich versuche SWIG zu lernen und ich habe einige Probleme damit, SWIG auf einem Linux-Rechner mit Perl arbeiten zu lassen. Ich habe die Dateien Dog.h, Crow.h, Animal.i und libmylib.so. Alle diese Dateien befinden sich im selben Verzeichnis. libmylib.so wurde mit Dog.cpp und Crow.cpp kompiliert, die auf Dog.h bzw. Crow.h verweisen. Meine Animal.i-Datei lautet wie folgt:

%module Animal
%{
/* Includes the header in the wrapper code */
#include "Dog.h"
#include "Crow.h"
%}

/*Parse the header file to generate wrappers */
%include "Dog.h"
%include "Crow.h"

Hier sind die Befehle, die ich ausführe, um das Perl-Modul zu erstellen:

swig -perl -c++ Animal.i
g++ -shared -fPIC Animal_wrap.cxx -L. -lmylib -I/usr/lib64/perl5/CORE -o _Animal.so
LD_LIBRARY_PATH=. perl

Wenn ich "use Animal;" eingebe, wird folgende Fehlermeldung angezeigt: "Ladbares Objekt für Modul Animal in @INC nicht gefunden". Ich bin ziemlich neu in Perl, daher bin ich mir nicht sicher, wie ich das Problem beheben soll, obwohl ich nach dem Durchsuchen das Problem haben könnte, dass Perl nicht auf meine libmylib.so-Datei verweisen kann. Jede Hilfe wäre sehr dankbar. Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage