首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>编程开发>perl>正文

怎样从Perl中调用C库里的函数

http://www.oklinux.cn  2004-09-17  CSDN.NET   会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

  假如你所用的库是mylib.a 头文件是mylib.h
  假如mylib.h像以下内容:
      extern void hello();
  hello()函数假如执行如下功能:
   void hello()
   {
     printf("Success call from perl to c libray!\n";
   }
  
  一、建立工作目录mytest,把mylib.a和mylib.h放到mytest中
  二、在mytest的上层目录执行
    h2xs -O -n mytest ./mytest/mylib.h
  三、进入mytest,修改mytest.xs,在文件末尾增加perl接口
   
   void
   hello()
      CODE:
       hello();
   
  改变#include <./mytest/mylib.h>
  为 #include "mylib.h"
  一般情况下此行都需要修改。
  
  四、修改Makefile.PL,其中#add begin和#add end中间的内容是新增加的。
   use ExtUtils::MakeMaker;
   # See lib/ExtUtils/MakeMaker.pm for details of how to influence
   # the contents of the Makefile that is written.
   WriteMakefile(
    'NAME'   => 'mytest',
    'VERSION_FROM' => 'mytest.pm', # finds $VERSION
    'LIBS'   => [''],  # e.g., '-lm'
    'DEFINE'  => '',   # e.g., '-DHAVE_SOMETHING'
    'INC'    => '',   # e.g., '-I/usr/include/other'
    #add begin
    'MYEXTLIB' => 'mylib.a',
    #add end
   );
    #add begin
   sub MY::postamble()
   {
   '
   $(MYEXTLIB): .
   ';
   #add end
   }
   
  五、执行perl Makefile.PL,让perl生成makefile
  六、执行make
  七、修改测试文件test.pl,修改完毕后改变为可执行
    #!/usr/bin/perl
    # Before `make install' is performed this script should be runnable with
    # `make test'. After `make install' it should work as `perl test.pl'
  
    ######################### We start with some black magic to print on failure.
  
    # Change 1..1 below to 1..last_test_to_print .
    # (It may become useful if the test is moved to ./t subdirectory.)
  
    use ExtUtils::testlib;
    BEGIN { $| = 1; print "1..1\n"; }
    END {print "not ok 1\n" unless $loaded;}
    use mytest;
    $loaded = 1;
    print "ok 1\n";
  
    ######################### End of black magic.
  
    # Insert your test code below (better if it prints "ok 13"
    # (correspondingly "not ok 13") depending on the success of chunk 13
    # of the test code):
    mytest::hello();
    
  八、此时你应该能够看到
    Success call from perl to c libray!

上一篇:用Perl语言进行Socket网络编程   下一篇:使用Perl连接Access数据库详解

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·用Perl语言进行Socket网络编程
·使用Perl连接Access数据库详解
·功能丰富的 Perl:用 Perl 保存
·适合初学者的Perl的文件操作(2)
·利用Perl列出系统环境变量清单范例
·适合初学者的Perl的文件操作(1)
·Linux环境中的Mod_perl 编程介绍
·C Java PHP Perl Python的程序代码美化工具
·打造Linux安全堡垒Perl的安全性监测
·在Perl中使用SendMail发送邮件
·Linux脚本语言PERL 的模板应用分析
·用Linux下脚本Perl连接SQL Server
·吸引Web程序员的Perl的模板系统Mason
·用Perl 写不刷屏的聊天室原理分析
·Perl 的经典用法:读入多个记录
·功能丰富的 Perl:xinetd 程序用于系统管理
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·Linux下安装Perl脚本语言的方法
·以非超级用户身份安装mod_perl
·优化Perl榨取代码的最大性能
·功能丰富的Perl:Perl自动化系统管理
·使用Perl/Tk把GUI加入服务器编程
·CJavaPHPPerlPython的程序代码美化工具
·改良的Perl:程序员面向Linux的设置
·Perl的经典用法:用Open()函数打开文件
·功能丰富的Perl:轻松调试Perl的技巧
·功能丰富的Perl:Perl用于实现遗传算法
·Linux使用基本知识:编写简单的perl
·功能丰富的Perl:用Perl读写Excel文件
  阅读排行
·使用Perl自动化UNIX系统管理
·功能丰富的Perl:用Perl读写Excel文件
·利用Perl列出系统环境变量清单范例
·Perl的经典用法:用Open()函数打开文件
·Linux下安装Perl脚本语言的方法
·优化Perl榨取代码的最大性能
·用Pear加速PHP程序开发
·Linux使用基本知识:编写简单的perl
·功能丰富的Perl:轻松调试Perl的技巧
·在Perl中使用SendMail发送邮件
·功能丰富的Perl:编写说英语的Perl程序
·用Perl写不刷屏的聊天室原理分析
·吸引C和Java程序员目光的Perl5.6
·改良的Perl:程序员面向Linux的设置
·用Gtk2-Perl建立具有复杂GUI界面的应用
网摘收藏: