인벤토리를 계산할 C++ 프로그램이 있으며 특정 레벨 아래로 떨어지면 주문 세부 정보를 DB에 기록 할 필자의 펄 프로그램에 전화하고 싶습니다. 나는 C++에서 펄 호출에 설명서를 읽고 난 컴파일하려고C++ 프로그램에서 perl 프로그램을 실행 중입니다
#include <EXTERN.h>
#include <perl.h>
static PerlInterpreter *my_perl;
int main(int argc, char **argv, char **env)
{
char *args[] = { NULL };
PERL_SYS_INIT3(&argc,&argv,&env);
my_perl = perl_alloc();
perl_construct(my_perl);
perl_parse(my_perl, NULL, argc, argv, NULL);
PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
/*** skipping perl_run() ***/
call_argv("showtime", G_DISCARD | G_NOARGS, args);
perl_destruct(my_perl);
perl_free(my_perl);
PERL_SYS_TERM();
}
이 샘플 코드를 시도했지만, 난 내가 들어갔다 그래서 나는 우분투 작업입니다
g++ fn-test.cpp -o t 'perl -MExtUtils::Embed -e ccopts -e ldopts'
g++: perl -MExtUtils::Embed -e ccopts -e ldopts: No such file or directory
fn-test.cpp:2:24: fatal error: EXTERN.h: No such file or directory
compilation terminated.
다음과 같은 오류를 얻을 cpan 및 도망
force install ExtUtils::Embed
잠깐 동안 내가 다시 컴파일하려고하면 같은 오류가 발생합니다. C++에서 Perl 프로그램을 처음 호출하는 것이므로 모든 팁이 도움이 될 것입니다.
Perl과 C++ 사이에 높은 커플이 필요합니까? 그렇지 않다면 시스템 ("perl myscript.pl") –
을 실행하면 명령 행에서 펄 프로그램을 실행하는 방법을 알 수 있습니다 ... 내 C++ 프로그램 내에서 동일한 작업을 수행했다는 것을 의미합니까? – itcplpl
@itcplpl : 예,하지만 사용하고 있습니다. ''의'system()'함수가 있습니다. –
jwodder