Chinaunix首页 | 论坛 | 博客
  • 博客访问: 97366
  • 博文数量: 25
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 316
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-02 00:39
文章分类

全部博文(25)

文章存档

2013年(25)

我的朋友

分类: PERL

2013-04-22 16:35:37

perl嵌入c语言原理为使用c外部过程,使用xs语言来扩展和编译模块,然后调用,步骤如下

#h2xs -A -n myperl  /* 创建一个名叫myperl的工程 */

编辑其中的myperl.xs 如

#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"

#include "ppport.h"

MODULE = myperl        PACKAGE = myperl       

void
is_connect()
    CODE:
        if(mysql_connect()==0)
        {
            printf("connect ok\n");
        }
       
        else
        {
            printf("connect failed\n");
        }


#perl Makefile.PL    /* 需要调用c共享库的,在LIBS中指定,本例指定为-lmysql,后续需要编译libmysql.so并放在正确位置 */
#make
#make install

然后perl就可以调用myperl模块,如

#!/usr/bin/perl -w

use ExtUtils::testlib;
use myperl;
myperl::is_connect();


编辑libmysql.c

#include
#include

int mysql_connect()
{
    MYSQL mysql;

    mysql_init(&mysql);
    if(mysql_real_connect(&mysql,"localhost","test","test","test",0,NULL,0))
        return 0;
    return 1;
}

#cc -o libmysql.so -shared -fPIC libmysql.c -lmysqlclient

cp到/usr/lib下然后ldconfig即可
阅读(1006) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~