如果你编译本文档中的脚本有困难。那么你不是一个人在战斗。记住重要原则: 以编译你的perl的方式,编译你的程序(不好意思)
并且,每一个使用了Perl的C程序都必须连接 perl 库 你问,那是什么?Perl本身就是用C写的。Perl库是编译过的用来创建Perl可执行程序的C程序集合 (/usr/bin/perl或者类似的)。(结论:你不能在没有编译过或者正确安装过Perl的系统中编译嵌入了Perl的C程序。不正确安装指,只是复制了Perl的二进制可执行文件而没有复制perl的库目录。)
当你在C中使用Perl时, 你的C程序将要--通常--需要创建、执行,然后销毁一个 Perl解释器
如果你的Perl烤备足够新到包含本文档 (版本5002或者更新), 则Perl库 (以及你将需要的EXTERNh 和 perlh) 将会在类似这样的目录中:
/usr/local/lib/perl5/your_architecture_here/CORE
或者可能就直接是
/usr/local/lib/perl5/your_architecture_here/CORE
或者可能类似
/usr/opt/perl5/CORE
执行这个表达式可以定位这个目录:
perl -MConfig -e 'print $Config{archlib}'
这是如何编译下节的示例代码:往你的C程序中墙加一个Perl解释器的语句,在我的linux机器上是这样:
% gcc -O2 -Dbool=char -DHAS_BOOL -I/usr/local/include -I/usr/local/lib/perl5/i586-linux/5003/CORE -I/usr/local/lib/perl5/i586-linux/5003/CORE -o interp interpc -lperl -lm
(那些是一行。) 在我跑着老版本perl 5003_05的DEC Alpha机器上, 有一点点儿不一样:
% cc -O2 -Olimit 2900 -DSTANDARD_C -I/usr/local/include -I/usr/local/lib/perl5/alpha-dec_osf/500305/CORE -L/usr/local/lib/perl5/alpha-dec_osf/500305/CORE -L/usr/local/lib -D__LANGUAGE_C__ -D_NO_PROTO -o interp interpc -lperl -lm
你如何找出需要填加什么?如果你的Perl版本高于5001, 执行 perl -V 命令,注意一下它的有关``cc'' 和 ``ccflags''的信息。
你将不得不根据你的系统选择适当的编译器。 (cc,gcc,等等。) : perl -MConfig -e 'print $Config{cc}' 将告诉你用什么。
你还得根据你的系统选择正确的Perl库目录 (/usr/local/lib/) 如果你的编译器抱怨有函数未定义,或者它不能定位 -lperl,则你需要用-L手动指定库文件路径。如果它抱怨找不到EXTERNh 和 perlh,你需要用-I手动指定头文件路径。
你可能还需要如法增加其它库哪些?可能包括这行指令打印出的这些:
perl -MConfig -e 'print $Config{archlib}'
如果你的perl配置安装无误,则模块ExtUtils::Embed将为你检测出你需要的所有信息。
% cc -o interp interpc `perl -MExtUtils::Embed -e ccopts -e ldopts`
如果ExtUtils::Embed不包含在你的perl发行版中, 你可以从>
#include <stdioh>
#define ROW 3
#define COL 2
int main()
{
int a[ROW][COL];
int i,j,maxi,maxj,mini,minj,max,min;
printf("请输入数组a:");
for(i=0;i<ROW;i++)
for(j=0;j<COL;j++)
scanf("%d",&a[i][j]);
max=min=a[0][0];
maxi=maxj=mini=minj=0;
for(i=0;i<ROW;i++)
for(j=0;j<COL;j++)
{
if(a[i][j]>max)
{
max=a[i][j];
maxi=i;
maxj=j;
}
else if(a[i][j]<min)
{
min=a[i][j];
mini=i;
minj=j;
}
}
printf("数组的最大值为%d,位于第%d行,第%d列\n",max,maxi,maxj);
printf("数组的最小值为%d,位于第%d行,第%d列\n",min,mini,minj);
return 0;
}
以上就是关于如何在C程序中嵌入Perl全部的内容,包括:如何在C程序中嵌入Perl、关于 c语言编程的问题,请各位帮忙、编写函数求出任意一个二维数组元素中最大值和最小值的下标,c语言程序题,在线等,谢谢谢谢谢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)