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即可
阅读(891) | 评论(0) | 转发(0) |