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) |