Проблема при запуске Makefile, который вызывает Perl-скрипт - PullRequest
1 голос
/ 05 ноября 2010

Я пытаюсь скомпилировать программное обеспечение C ++ месяц назад.

Существует большое давление, чтобы заставить эту работу как можно скорее.

Я искал подобноепроблемы, но я все больше путаюсь.

Я использую следующее:

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.

Я выполнил команду:

bcmsa@braw176 ~/nba/DLPRTER_CAA/bin/RPG3/default >make -dwp all

Но я получаю следующее:

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 хранится в указанном каталоге:

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

Пожалуйста, помогите мне найти, как исправить эту ошибку.Я действительно не знаю, что еще делать.

Я попытался выполнить следующее, чтобы посмотреть, что происходит:

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.

Информация:

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

Ответы [ 2 ]

4 голосов
/ 05 ноября 2010

Я сильно подозреваю, что shebang в sigunion.pl (он же строка #!) Указывает на неправильное место для вашего исполняемого файла perl.

head sigunion.pl покажет вам, где sigunion.pl считает, что perlи which perl покажет вам, где на самом деле установлен perl.

Пример:

$ head sigunion.pl
#!/usr/bin/perl
.....stuff omited
$ which perl
/usr/opt/perl-5.8.8/bin/perl
3 голосов
/ 05 ноября 2010

/ bin / sh: /aps/APS40/RPG3_R4A/lib/cmtool/plugin/rpg3.R3B/tools/tools/scripts/sigunion.pl: не найдено

... указывает на то, что / bin / sh не смог понять, как запустить скрипт sigunion.pl.Вероятно, отсутствует строка shebang:

#!/usr/bin/perl

... которая сообщает оболочке, какую внешнюю программу (в данном случае, perl) нужно проанализировать и запустить файл.

В качестве альтернативы выможно просто найти perl в $PATH, изменив соответствующую строку в Makefile на:

perl /aps/APS40/RPG3_R4A/lib/cmtool/plugin/rpg3.R3B/tools/tools/scripts/sigunion.pl <arguments>
...