나는 꽤 많은 공유 라이브러리로 구성된 응용 프로그램을 가지고있다. 나는 그 중 일부에 펄 확장을 작성했다. 또한 perl을 응용 프로그램에 임베드했습니다.Perl을 C 질문에 포함하기
저는 C++에서 perl 스크립트를 호출하고 있습니다. 내 펄 확장이 SV :: 순 :: 정보 및 SV :: 인터페이스로 명명하고 내 펄 파일 내가 C에서 펄 스크립트를 읽어 ++ 및 보낼 수있어이
use SV::Net::Info;
use SV::Interface;
#use IO::Socket;
...
...
...
처럼 찾고, 말을 할 수있는 어떤 문제없이 C++로 다시 출력 할 수 있습니다. 내가 IO 자체가 C 라이브러리 때문이다
Can't load module IO, dynamic loading not available in this perl.
(You may need to build a new perl executable which either supports
dynamic loading or has the IO module statically linked into it.)
한다는 오류 메시지가지고있어 세 번째 줄, use IO::Socket;
의 주석 때 문제가 발생한다. 나는 xs-glue를 here과 같이 추가했습니다. 추가 된 접착제가 IO_SO 파일에 정의 된 boot_IO 기호를 찾고 있으므로 문제를 해결하지 못했습니다. Idle과 응용 프로그램을 연결할 수 없습니다. 파일은 dlopen을 사용하여 런타임에 perl이 열 때 사용합니다. (또한, 내 응용 프로그램은 Windows에서 작동해야하며 .dll 파일과 .lib 파일 만 제공합니다.) 나가는 길은 무엇입니까?
dlopen을 사용하여 런타임시 IO.so에서 실제 boot_IO 함수를 실행하는 wrapper 함수 boot_IO를 작성하려고합니다. 이것이 유일한 옵션입니까?
http://www.perlmonks.org/?node_id=916694에서 PerlMonks로 크로스 포킹 – DavidO
* * dlopen 지원을 사용하는 동적 libperl에 대해서만 링크 할 수 있습니까? – hobbs