首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行调用Perl脚本的Makefile时出现问题

运行调用Perl脚本的Makefile时出现问题
EN

Stack Overflow用户
提问于 2010-11-06 02:35:06
回答 2查看 1.8K关注 0票数 1

一个月前我在试着编译一个C++软件。

要使这项工作尽快生效,压力很大。

我一直在寻找类似的问题,但我越来越困惑。

我使用的是以下内容:

代码语言:javascript
复制
bcmsa@braw176 ~/nba >uname -a
SunOS braw176 5.8 Generic_108528-13 sun4u sparc SUNW,Ultra-5_10
bcmsa@braw176 ~/nba >make -v
make -v
GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.
Built for sparc-sun-solaris2.8
Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
        Free Software Foundation, Inc.

我执行了以下命令:

代码语言:javascript
复制
bcmsa@braw176 ~/nba/DLPRTER_CAA/bin/RPG3/default >make -dwp all

但我收到的信息如下:

代码语言:javascript
复制
Reaping winning child 0x0006da38 PID 27586
/bin/sh: /aps/APS40/RPG3_R4A/lib/cmtool/plugin/rpg3.R3B/tools/tools/scripts/sigunion.pl: not found
Live child 0x0006da38 (/export/home/bcmsa/nba/DLPRTER_CAA/bin/RPG3/default/sigunion.h) PID 27588
Got a SIGCHLD; 1 unreaped children.
Reaping losing child 0x0006da38 PID 27588
make: *** [/export/home/bcmsa/nba/DLPRTER_CAA/bin/RPG3/default/sigunion.h] Error 1
Removing child 0x0006da38 PID 27588  from chain.

更疯狂的是,sigunion.pl存储在指定的目录中:

代码语言:javascript
复制
bcmsa@braw176 ~/nba >cd /aps/APS40/RPG3_R4A/lib/cmtool/plugin/rpg3.R3B/tools/tools/scripts/
bcmsa@braw176 /aps/APS40/RPG3_R4A/lib/cmtool/plugin/rpg3.R3B/tools/tools/scripts >ls -la
total 120
drwxrwsr-x   2 80422    3626        4096 Jun 12  2002 .
drwxrwsr-x   3 80422    3626        4096 Jun 12  2002 ..
-r-xr-xr-x   1 80422    3626        2195 Jun 28  1999 bdt_c.sh
-r-xr-xr-x   1 80422    3626        2449 Mar  8  1999 bdt_h.sh
-r-xr-xr-x   1 80422    3626         681 Oct 20  1999 change_base
-r-xr-xr-x   1 80422    3626         990 Oct 20  1999 convert_to_iog11
-r-xr-xr-x   1 80422    3626         692 Oct 20  1999 create_directory
-r-xr-xr-x   1 80422    3626         604 Oct 20  1999 create_elements
-r--r--r--   1 80422    3626         582 Mar  2  1999 create_elements.base
-r-xr-xr-x   1 80422    3626        2059 Dec 13  2001 generate_signal_files.csh
-r-xr-xr-x   1 80422    3626         486 Oct 20  1999 generate_version_info
-r-xr-xr-x   1 80422    3626         610 Oct 20  1999 get_program.csh
-r-xr-xr-x   1 80422    3626         760 Oct 20  1999 get_suid.csh
-r-xr-xr-x   1 80422    3626         774 Oct 20  1999 set_autostart.pl
-r-xr-xr-x   1 80422    3626        1555 Oct 20  1999 sigunion.pl

请帮我找出解决这个问题的方法。我真的不知道还能做什么。

我尝试执行以下代码,看看会发生什么:

代码语言:javascript
复制
bcmsa@braw176 /aps/APS40/RPG3_R4A/lib/cmtool/plugin/rpg3.R3B/tools/tools/scripts >perl sigunion.pl
Can't exec /usr/atria/bin/Perl at sigunion.pl line 1.

信息:

代码语言:javascript
复制
bcmsa@braw176 /aps/APS40/RPG3_R4A/lib/cmtool/plugin/rpg3.R3B/tools/tools/scripts >which perl
/usr/bin/perl
bcmsa@braw176 /aps/APS40/RPG3_R4A/lib/cmtool/plugin/rpg3.R3B/tools/tools/scripts >perl -v

This is perl, version 5.005_03 built for sun4-solaris


bcmsa@braw176 /aps/APS40/RPG3_R4A/lib/cmtool/plugin/rpg3.R3B/tools/tools/scripts >head sigunion.pl 
#! /usr/atria/bin/Perl
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-06 02:43:31

我强烈怀疑sigunion.pl中的shebang (也称为#!行)指向了您的perl可执行文件的错误位置。

head sigunion.pl将显示sigunion.pl认为perl在哪里,which perl将向您显示perl实际安装的位置。

示例:

代码语言:javascript
复制
$ head sigunion.pl
#!/usr/bin/perl
.....stuff omited
$ which perl
/usr/opt/perl-5.8.8/bin/perl
票数 4
EN

Stack Overflow用户

发布于 2010-11-06 02:38:48

/bin/sh:找不到/aps/APS40/RPG3_R4A/lib/cmtool/plugin/rpg3.R3B/tools/tools/scripts/sigunion.pl:

...indicates表示/bin/sh无法确定如何运行脚本sigunion.pl。它可能缺少一行shebang行:

代码语言:javascript
复制
#!/usr/bin/perl

...which告诉shell要解析和运行文件的外部程序(在本例中是perl)。

或者,您可以只让perl$PATH中找到,方法是将Makefile中的适当行更改为:

代码语言:javascript
复制
perl /aps/APS40/RPG3_R4A/lib/cmtool/plugin/rpg3.R3B/tools/tools/scripts/sigunion.pl <arguments>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4108965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档