在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
SWIG, Simplified Wrapper and Interface Generator, 简单来说是C/C++语言与其他语言的粘合剂 。 官方站点: http://www.swig.org/translations/chinese/tutorial.html
介绍在Visual Studio 2008 下面如何用Swig制作DLL给Perl用(最后测试出现错误)。 假如你有一个 example.c 的文件(官方站点上的例子):
想把这个文件给Perl用。 首先用Visual Studio 2008 建一个C++的win32 project工程,点击next后选择 Application type: DLL(选择该项) Additional options: Empty project(选择该项) 然后finish. 把 example.c 的文件加入工程中source files。 然后写一个接口文件 example.i :
把这个example.i文件加入工程中。 注意%{ 和 %}之间的文字将原封不动的写入SWIG生成的wrap文件(example_wrap.c),相当于在wrap文件的函数声明。 然后在系统中设置三个环境变量,主要是为了设置编译环境方便。 如果Perl装在C盘。
环境变量设置完后需要重新启动 Visual Studio 2008 才有效。 右击example.i,点击Properties中Custom Build Step 设置Command line:
和dos命令一样,最后一句相当于 F:\Software\swigwin-2.0.8\swig.exe -perl5 example.i Outputs设置成$(InputName)_wrap.c 相当于example_wrap.c 然后选择整个工程的Properties的Configuration Properties 设置C/C++中General的Additional Include Directories: $(PERL5_INCLUDE) 设置Linker中Input的Additional Dependencies: $(PERL5_LIB) 然后编译。第一次编译后会生成example.pm,example_wrap.c。把example_wrap.c加入工程,再编译一次就ok了。把DLL拷贝到example.pm的目录里面,用 runme.pl 测试。
测试结果:
----------------------------------------------------------------- 最后测试的时候出现以下错误: F:\>perl runme.pl
REF: http://www.swig.org/Doc1.3/Windows.html http://topic.csdn.net/u/20090303/21/72a4fa1d-9146-4fc2-8555-8db2304d02df.html http://blogs.msdn.com/b/texblog/archive/2007/04/05/linking-native-c-into-c-applications.aspx http://blog.sina.com.cn/s/blog_48e3f9cd0100850k.html |
请发表评论