我有一个大约15,000行的Perl脚本,想要通过使用
我尝试按照这些说明进行操作。
我下载了Perl 5.18源码并包含了核心(安装)目录,用于
然后我尝试在Visual Studio 2013中编译简单的C++项目。
该项目无法编译,出现了数百个错误,但最常见的错误是:
PerlInterpreter
从用C++编译的Windows可执行文件中执行它。我尝试按照这些说明进行操作。
我下载了Perl 5.18源码并包含了核心(安装)目录,用于
perl.h
和EXTERN.h
,以及core/win32
和core/win32/include
。然后我尝试在Visual Studio 2013中编译简单的C++项目。
#include <EXTERN.h> /* from the Perl distribution */
#include <perl.h> /* from the Perl distribution */
static PerlInterpreter *my_perl; /*** The Perl interpreter ***/
int main(int argc, char **argv, char **env)
{
PERL_SYS_INIT3(&argc,&argv,&env);
my_perl = perl_alloc();
perl_construct(my_perl);
PL_exit_flags |= PERL_EXIT_DESTRUCT_END;
perl_parse(my_perl, NULL, argc, argv, (char **)NULL);
perl_run(my_perl);
perl_destruct(my_perl);
perl_free(my_perl);
PERL_SYS_TERM();
}
该项目无法编译,出现了数百个错误,但最常见的错误是:
missing config.h file included by perl.h
所以我在perl.h
中添加了#define PERL_MICRO
声明
这将错误数量减少到20个
然而,所有的错误都来自于Windows SDK文件string.h
和guidedef.h
,因此我不知道这些错误的起源
有人能否提供我有关如何创建和构建用于Perl脚本的C++解释器的任何信息吗?
剩下的错误为
Error 10 error C3861: 'my_memcmp': identifier not found c:\program files (x86)\windows kits\8.1\include\shared\guiddef.h 161 1
Error 3 error C2733: 'memmove_s' : second C linkage of overloaded function not allowed c:\program files (x86)\microsoft visual studio 12.0\vc\include\string.h 136 1
Error 4 error C2733: 'memmove' : second C linkage of overloaded function not allowed c:\program files (x86)\microsoft visual studio 12.0\vc\include\string.h 139 1
Error 2 error C2733: 'memcpy_s' : second C linkage of overloaded function not allowed c:\program files (x86)\microsoft visual studio 12.0\vc\include\string.h 57 1
Error 1 error C2733: 'memcpy' : second C linkage of overloaded function not allowed c:\program files (x86)\microsoft visual studio 12.0\vc\include\string.h 55 1
Error 8 error C2732: linkage specification contradicts earlier specification for 'strstr' c:\program files (x86)\microsoft visual studio 12.0\vc\include\string.h 228 1
Error 7 error C2732: linkage specification contradicts earlier specification for 'strrchr' c:\program files (x86)\microsoft visual studio 12.0\vc\include\string.h 226 1
Error 6 error C2732: linkage specification contradicts earlier specification for 'strpbrk' c:\program files (x86)\microsoft visual studio 12.0\vc\include\string.h 224 1
Error 5 error C2732: linkage specification contradicts earlier specification for 'strchr' c:\program files (x86)\microsoft visual studio 12.0\vc\include\string.h 222 1
Error 9 error C2732: linkage specification contradicts earlier specification for 'memchr' c:\program files (x86)\microsoft visual studio 12.0\vc\include\string.h 233 1
PERL_MICRO
,则需要修改您的Visual Studio项目来定义它。头文件形成了Perl编译器/解释器接口的定义,您不能随意更改它们。 - Borodin