簡體   English   中英

使用make安裝Perl模塊時出現錯誤-Mac OSX 10.7

[英]Errors when installing a Perl module using make - Mac OSX 10.7

問題:

我似乎無法正確安裝perl模塊,尤其是JSON-2.53。

我已經完成以下工作:

  • 搜索了類似的問題並嘗試了解決方案-無效。
  • 在OSX Lion升級后,perl“ ... / config.h,`Makefile'所需要”不起作用
  • 已安裝的XCode命令行開發人員實用程序(c編譯器,make等)
  • 閱讀有關此特定Perl模塊的版本兼容性文檔: http : //metacpan.org/pod/JSON
  • 運行以下命令來制作和安裝所需的perl模塊:

    $ perl Makefile.PL

    歡迎使用JSON(v.2.53)

    如果安裝JSON :: XS v.2.27,它將使JSON更快。

    **************************小心*********************** ***

    • 這是“ JSON版本2”,並且有很多區別*
    • 到1.xx版*
    • 請使用舊版本檢查您的應用程序。 *
    • 請參閱“舊版本的不兼容更改”和“提示” *

    為JSON編寫Makefile

(驗證已寫入Makefile)

$make
make: *** No rule to make target `/System/Library/Perl/5.12/darwin-thread-multi-2level/CORE/config.h', needed by `Makefile'.  Stop.

該錯誤甚至意味着什么? 如何成功make install此模塊?

以下是一些其他項目,可以幫助您調試此問題:

$which make
/Applications/Xcode.app/Contents/Developer/usr/bin/make
$which perl
/usr/bin/perl
$perl -v
This is perl 5, version 12, subversion 3 (v5.12.3) built for darwin-thread-multi-2level

我認為您需要下載並重新安裝XCode。 如果我正確地記得10.7,那么從應用商店下載Xcode后,它會將安裝程序拖放到“應用程序”文件夾中。 您需要運行它,然后嘗試再次安裝命令行工具(從Xcode的偏好面板)。 我知道您提到您已經這樣做了,但是更多背景知識可能會解釋為什么值得再次嘗試。

這是Mac上Makefile中的相關行:

PERL_INC = /System/Library/Perl/5.12/darwin-thread-multi-2level/CORE
# Where is the Config information that we are using/depend on
CONFIGDEP = $(PERL_ARCHLIB)$(DFSEP)Config.pm $(PERL_INC)$(DFSEP)config.h

稍后在Makefile中,CONFIGDEP用作目標中的依賴項。 我相信在您的情況下,make正在尋找/System/Library/Perl/5.12/darwin-thread-multi-2level/CORE/config.h,但找不到它。 您看到的錯誤是make的鈍器,表示找不到文件。

config.h包含有關操作系統的特定信息,但運行腳本不需要。 僅當您要編譯模塊時才引用它。 使用股票OSX,您可以獲得執行腳本所需的足夠的Perl。 安裝XCode,您將獲得執行perl“開發”的位(如config.h)。 我使用引號是因為您無需Xcode就可以編寫和運行perl腳本。 但是,正如您發現的那樣,編譯模塊需要Xcode提供的其他文件。 (順便說一句,RedHat也做同樣的事情。您必須安裝perl-devel軟件包才能獲得config.h。perl運行時位於單獨的軟件包中。)

您可以嘗試以下操作:

  1. 確認/System/Library/Perl/5.12/darwin-thread-multi-2level/CORE/config.h存在。 如果不是,則說明Xcode命令行實用程序未正確安裝。 再試一遍。
  2. 如果config.h存在,請檢查其內容並確保它看起來不錯。 這是一個C頭文件,由注釋和#define語句組成。
  3. 如果您無權查看config.h,那么將遇到權限問題。 嘗試使用sudo make作為旁路。 磁盤實用程序(位於“應用程序”->“實用程序”中)可以永久解決此問題。
  4. 通過從CONFIGDEP中刪除“ $(PERL_INC)$(DFSEP)config.h”,可能會冒險更改Makefile。 我是在我的10.8 Mac上完成此操作的,它沒有任何問題(它也通過了所有測試)。 但是,如果找不到config.h問題的根本原因,則下次您要安裝perl模塊時,可能會發現自己回到了開始的位置。

我遇到了完全相同的錯誤,雖然這可能不是您的解決方案。...重新安裝與OSX版本兼容的更新的xcode(在安裝后重新引導)后,我仍然有錯誤-簡而言之,我注意到錯誤后/ CORE /中沒有config.h .....有效的解決方案是觸摸config.h並先創建文件,然后重新運行make。 希望這對某人有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM