2014-09-11 74 views
0

最近,我嘗試從cygwin environtment的源代碼編譯一個gnu wget,如果彈出錯誤perl is not found。否則,在/bin/上同時安裝perl和perl5,但wget是在/usr/bin上嘗試搜索perl。我想我已經錯過了基本的./configure來設置路徑可執行文件。所以我的問題是基本的。編譯選項基本./configure說明

是什麼一回事選項下面:

*

--bindir=DIR 

--sbindir=DIR 

--libexecdir=DIR 

*

謝謝

+0

嘗試'。/ configure --help' – 2014-09-11 03:20:34

+0

#Elliot Frisch我仍然不明白關於3個幫助選項的解釋。它只是用戶可執行文件,系統可執行文件,可編程程序。哪個指向perl路徑? – 2014-09-11 03:24:07

回答

0

這些選項指定將要安裝正在編譯的軟件包的目錄。據我記得,它不涉及配置執行的檢查。確保perl$PATH。如果沒有任何幫助,嘗試找到配置腳本中的確切位置(通常它是機器人生成的,並不是用於人眼,但最終它是一個shell腳本,並且任何人都可以讀取它)並查看確切執行的操作以查找perl

更新:我已經檢查,對應到perl像這樣在configure.ac(其本質上是一種「源代碼」的configure)測試:

AC_PATH_PROGS(PERL, [perl5 perl], no) 
AC_PATH_PROG(POD2MAN, pod2man, no) 

這意味着PERL具有可執行命名perl5perl(在$PATH中的某處)被檢查,然後POD2MAN與可執行pod2man。仔細檢查配置輸出和config.log文件並查看哪些測試失敗。

Update2AC_PATH_PROGAC_PATH_PROGS的第三個參數是value-if-no-found。你也可以指定第四個參數,$PATH這個特定的檢查。確保configure在更改configure.ac後得到重建(通常它會自動發生,但可能會明確執行autoconf

+0

我看起來和你一樣的源代碼。但它仍然沒有生成Perl和podman被發現。乾渴行說法「不」?我應該把它設置爲是嗎?所以它會自動查找perl? – 2014-09-11 04:03:01

+0

「第三行」,你的意思是'libexecdir'? 'libexecdir'是程序包(通常是Unix/Linux系統中的'/ usr/lib'或'/ usr/libexec'),其中編譯的程序包的「後端可執行組件」(不適用於最終用戶)是駐留的。不,perl相關的'wget'包檢查不使用這個目錄。你看過'config.log'文件嗎?文件的最後幾行是什麼? – user3159253 2014-09-11 04:07:51

+0

我的意思是,配置ac_path_progs函數參數。 「沒有」。 – 2014-09-11 04:22:28

0

是什麼一回事選項下面:

* 

--bindir=DIR 
--sbindir=DIR 
--libexecdir=DIR 

第一個(bindir)是安裝二進制文件的地方。對於wget,這是(在我的系統上)/usr/bin

第二個(sbindir)是安裝靜態二進制文件的地方。您可以將其設置爲/usr/sbin

第三個(libexecdir)是您的運行時庫將被安裝的位置。這通常是/usr/lib

事實上,通常你讓configure通過使用--prefix來設置全部三個。

./configure --prefix=/usr/local