首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

用perl xs封装C语言的库时遇到的有关问题,求高手解答

2013-01-11 
用perl xs封装C语言的库时遇到的问题,求高手解答啊本帖最后由 zhanyuanlin 于 2013-01-08 09:19:52 编辑我

用perl xs封装C语言的库时遇到的问题,求高手解答啊
本帖最后由 zhanyuanlin 于 2013-01-08 09:19:52 编辑 我在学习perl xs封装C语言库的东西!可是我按照perldoc上的例子去联系的时候总是报错,我看的文档地址是: perldoc.perl.org/perlxstut.html#EXAMPLE-4

 EXAMPLE4的这个例子!
我先创建一个Mytest2文件夹,然后再在MyTest2下面创建一个mylib文件夹,在该文件夹下面创建三个文件:mylib.h,mylib.c Makefile.pl,代码分别是:

mylib.h
 

#define TESTVAL4
extern doublefoo(int, long, const char*);


mylib.c
#include <stdlib.h>
#include "./mylib.h"
double
foo(int a, long b, const char *c)
{
return (a + b + atof(c) + TESTVAL);
}


Makefile.PL
use ExtUtils::MakeMaker;
$Verbose = 1;
WriteMakefile(
    NAME   => 'Mytest2::mylib',
    SKIP   => [qw(all static static_lib dynamic dynamic_lib)],
    clean  => {'FILES' => 'libmylib$(LIB_EXT)'},
);
sub MY::top_targets {
'
all :: static
pure_all :: static
static ::       libmylib$(LIB_EXT)
libmylib$(LIB_EXT): $(O_FILES)
$(AR) cr libmylib$(LIB_EXT) $(O_FILES)
$(RANLIB) libmylib$(LIB_EXT)
';
}


然后我按照文档的说明,在终端里面进入到Mytest2的上一层文件夹,输入命令
h2xs -O -n Mytest2 ./Mytest2/mylib/mylib.h

总是报错,说:
Can't find -0.h in . /usr/include /usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include /usr/include Mytest

Can't find -0.h in . /usr/include /usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include /usr/include Mytest

高手们,这是怎么回事啊?错误在哪儿啊?是不是文档有点儿问题啊? perl xs
[解决办法]
文档里说Make sure you use a tab and not spaces on the lines beginning with "$(AR)" and "$(RANLIB)".
我知道 CSDN 是会转换的,那你原来的代码呢,是 tab 吗?你用的是什么 IDE?IDE 会转换吗?

热点排行