通过h2xs 中间件,我们可以快速的使用c或则C++ 库来实现perl 扩展功能

第一讲:
跑通hello world 程序
******************************
我们使用命令:
h2xs -A -n test
它会帮助你建立一个test的文件夹,里面已经初始化部分文件了

进入test目录

cd test

打开文件test.xs

vi test.xs

原文件内容为:

#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h" #include "ppport.h" MODULE = test PACKAGE = test

我们增加一个函数变成

#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h" #include "ppport.h" MODULE = test PACKAGE = test void
hello_world(char *classname)
CODE:
printf("hello world from perl xs language\n");

保存退出

编译并安装,注意,安装需要root权限
perl Makefile.PL
make && make install

编写一个测试的perl 程序,test.pl

#!/usr/bin/perl
use test;
test->hello_world();

保存退出

执行测试程序
perl test.pl

没出什么意外的话,输出
hello world from perl xs language

perl C/C++ 扩展(一)的更多相关文章

  1. perl C/C++ 扩展(五)

    perl 的C++扩展,返回值为自定义类型. 在 perl C/C++扩展(三) 中,我已经介绍了,如何让perl 认识 c++的类,但是前面的介绍中,包括我参考的博客http://chunyemen ...

  2. perl C/C++ 扩展(四)

    在前面三篇博客中,我们了解到如何使用c/c++ 扩展自己的perl 库,但是博主在学习过程中,对动态库或静态库的加载不是十分了解,后来自己又细挖一下.后来就有了这篇博文,再后来,没有再后来了,囧!! ...

  3. perl C/C++ 扩展(二)

    第二讲perl 加载c/c++的库 先通过h2xs 创建一个新的工程 h2xs -A -n two_test 进入目录 cd two_test 创建一个mylib文件夹,存放静态库 mkdir myl ...

  4. perl C/C++ 扩展(三)

    第三讲扩展库使用c++实现,在调用函数后,返回对象变量,perl 能正确使用所有对象成员 使用h2xs 命令生成初始文件 h2xs -A -n three_test 登录目录 cd three_tes ...

  5. Perl中的正则表达式

    转自:http://c20031776.blog.163.com/blog/static/684716252013624383887/ Perl 程序中,正则表达式有三种存在形式 分别是 (1 模式匹 ...

  6. (转载)CSV 文件处理 PERL

    http://cn.perlmaven.com/how-to-read-a-csv-file-using-perl http://search.cpan.org/~hmbrand/Text-CSV_X ...

  7. perl IDE

    学习perl的网站 网上学习perl教程,可以参考下面2个网站: 1.http://www.runoob.com/perl/perl-tutorial.html 2.https://cn.perlma ...

  8. Perl 认识简介

    Perl简介 Perl 是 Practical Extraction and Report Language 的缩写,可翻译为 "实用报表提取语言". Perl 是高级.通用.直译 ...

  9. Qt:正则表达式语法:

         正则表达式是验证输入.从输入中提取数据以及对输入进行搜索和替换的强大工具,所谓正则表达式,regexp是一种利用模式匹配语言来描述字符串组成限制条件的方式;        Qt 提供了一个Q ...

随机推荐

  1. Hibernate基础知识介绍

    一.什么是Hibernate? Hibernate,翻译过来是冬眠的意思,其实对于对象来说就是持久化.持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘) ...

  2. 九度OJ 1094:String Matching(字符串匹配) (计数)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1259 解决:686 题目描述: Finding all occurrences of a pattern in a text is a p ...

  3. Transforming Auto-encoders

    http://www.cs.toronto.edu/~hinton/absps/transauto6.pdf The artificial neural networks that are used ...

  4. Kafka 配置参数汇总及相关说明

    Kafka为broker,producer和consumer提供了很多的配置参数. 了解并理解这些配置参数对于我们使用kafka是非常重要的.本文列出了一些重要的配置参数. 官方的文档 Configu ...

  5. 深入浅出谈DM

  6. Machine Learning in Action(1) K-近邻

    机器学习分两大类,有监督学习(supervised learning)和无监督学习(unsupervised learning).有监督学习又可分两类:分类(classification.)和回归(r ...

  7. ARM编译器中预定义的宏

    arm系列目前支持三大主流的工具链,realview的armcc,iar ewarm的iccarm,gnu的gcc,编译器在编译的时候会预定义一些宏,这些宏在工程中起到不可或缺的作用. 例如 /* d ...

  8. CentOS(Linux) - 安装软件笔记(总) - 开发环境安装顺序及汇总

    1.安装java环境 参考文章 CentOS7.1 使用资源搜集 2.需要可视化管理服务器时,需要先安装VPSmate 参考文章 CentOS(Linux) - 安装软件笔记(一) - VPSMate ...

  9. postNotificationName 消息传递详解

      1.定义消息创建的关联值 也就是找到方法的标志 NSString *const GameToIPhoneNotification = @"GameToIPhoneNotification ...

  10. 客户端调用cxf发布的服务

    import java.util.ArrayList; import java.util.List; import javax.xml.namespace.QName; import org.apac ...