perl源码 vs编译 用于源码调试

前端之家收集整理的这篇文章主要介绍了perl源码 vs编译 用于源码调试前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

perl.exe的生成比较简单,copy runperl.c perlmain.c  即拷贝为perlmain.c 再加perlexe.rc perl518.lib生成

使用vs工程编译,这样就可以vs调试了。

自己以可以整理一份perl518.dll的生成命令。

make文件如下:

@echo off
call "D:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86
set include=include;dllsrc\src;%include%
set lib=lib;%lib%
set CFLAGS_O= -nologo -GF -W3 -GS- -DWIN32 -D_CONSOLE -DNO_STRICT -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DPERLDLL -DPERL_CORE   -O1 -MD -Zi -DNDEBUG  -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO  
set CXX_FLAG= -TP -EHsc
set LIBFILES= oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib 


del *.obj
cl -c %CFLAGS_O% dllsrc\*.c
cl -c %CFLAGS_O% dllsrc\win32\*.c

cl -c %CFLAGS_O% dllsrc\ext\*.c
cl -c  %CFLAGS_O% %CXX_FLAG% perllib.c

cl -c -nologo -GF -W3 -GS- -O1 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERLDLL -O1 -MD -Zi -DNDEBUG -DVERSION=\"1.18\" -DXS_VERSION=\"1.18\" -DLIBC="msvcrt.lib" dllsrc\ext\DynaLoader.c
cl -c -nologo -GF -W3 -GS- -O1 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DUSE_PERLIO -DPERLDLL -UUSEIMPORTLIB -O1 -MD -Zi -DNDEBUG -DVERSION=\"0.04\" -DXS_VERSION=\"0.04\" dllsrc\ext\Win32CORE.c

link -dll -def:perldll.def -base:0x28000000 -out:perl518.dll Win32CORE.obj -nologo -nodefaultlib -debug -opt:ref,icf -machine:x86 "/manifestdependency:type='Win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'" -DELAYLOAD:ws2_32.dll delayimp.lib oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib  comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib  netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib  version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib av.obj		 deb.obj	 doio.obj	 doop.obj	 dump.obj	 globals.obj	 gv.obj		 mro.obj	 hv.obj		 locale.obj	 keywords.obj	 mathoms.obj     mg.obj		 numeric.obj	 op.obj		 pad.obj	 perl.obj	 perlapi.obj	 perly.obj	 pp.obj		 pp_ctl.obj	 pp_hot.obj	 pp_pack.obj	 pp_sort.obj	 pp_sys.obj	 reentr.obj	 regcomp.obj	 regexec.obj	 run.obj	 scope.obj	 sv.obj		 taint.obj	 toke.obj	 universal.obj	 utf8.obj	 util.obj  perllib.obj perlio.obj win32.obj	 win32sck.obj	 win32thread.obj	 fcrypt.obj win32io.obj DynaLoader.obj 
if exist perl518.dll.manifest mt -nologo -manifest perl518.dll.manifest -outputresource:perl518.dll;2 &&  if exist perl518.dll.manifest del perl518.dll.manifest

pause


 

猜你在找的Perl相关文章