2012-01-04 12 views
8

Uruchomienie Perla 5.10 CPAN na Solaris z pakietami opencsw.org, Makefile.PL z pakietów nie może odnaleźć poprawnej ścieżki i cc (gcc).Jak powiedzieć CPAN o ścieżce do zrobienia i cc

Znalazłem ścieżkę i ustawiłem ją na gmake, ale nie mogę znaleźć żadnego ustawienia dla cc.

Myślałem, że raz ustawiłem to w CPAN/Config.pm (lub o o config ...), ale nie mogę już znaleźć żadnego ustawienia i nie mam dość cierpliwości, aby przebić się przez zarośla, aby dowiedzieć się, gdzie takie podstawowa rzecz zostaje ustawiona.

Czy ktoś wie?

Odpowiedz

10

nie musi wiedzieć, gdzie znajduje się gcc lub odpowiednik, ponieważ nie jest to zadanie związane z jego bezpośrednim połączeniem z . Zwykle jest to Makefile.PL lub Build.PL, które musi to wiedzieć i zwykle akceptuje kompilator do użycia jako argument wiersza poleceń. Jeśli dodasz PERLMAINCC=/compiler/to/use do o conf makepl_arg, to powinno to zrobić.

+0

Config.pm gdzie ten zostanie ustawiony i ustali, co każdy Makefile.PL widzi. Ale odpowiedziałeś na moje pytanie. Dziękuję Ci! –

2

Rozszerzenia muszą być zbudowane przy użyciu tych samych narzędzi, co sam Perl, a Perl zapamiętuje, czym są te narzędzia.

Jeśli od tego czasu zostały usunięte lub przeniesione, może to stanowić problem.

Ale bardziej prawdopodobne jest, że nie zainstalowałeś pakietu (ów) z dystrybucji, która je dostarcza. Zainstaluj brakujące pakiety.

+0

Jestem na Solarisie 10, a moją dystrybucją jest opencsw.org. Perl 5.8 pochodzi z oryginalnego pakietu Solaris, ale Perl 5.10, który jest pierwszy na mojej ścieżce, pochodzi z OpenCSW. Mam również zainstalowane gcc i gmake i mogę je uruchomić z wiersza poleceń. –

2

W cpan_home/CPAN/Config.pm (lub poprzez o conf):

'make_arg' => q[CC=/path/to/c-compiler] 
+0

Wystąpił ten problem w środowisku klastrowym, próbując zbudować Net :: SSLeay, w którym system 'cc' był za stary i nie obsługiwał opcji' -fstack-protector-strong'. Ustawienie 'make_arg' na' CC = gcc' (nowsza wersja w mojej '$ PATH') było poprawnym rozwiązaniem w tym przypadku. – TheDudeAbides