2011-04-09 44 views
1

我想知道如何在Mac OS X上使用Xcode編譯libdvdcss的源代碼?文件bsdi_ioctl.c包含用於/sys/dev/scsi/scsi.h和/sys/dev/scsi/scsi_ioctl.h的語句。如何在Mac上用Xcode編譯libdvdcss?

我所做的是運行./bootstrap./configure首先生成config.h,但我仍然有問題。

任何人都可以對此有所瞭解嗎?

+0

通常的方式是'./configure --prefix = whatever;製造使安裝'。並非每個程序都遵循這一點,但很多程序都遵循這一點如果失敗,請嘗試剪切粘貼細節。 – sarnold 2011-04-09 04:03:38

+0

我不是在說如何在命令行上編譯它。 – zsong 2011-04-09 04:13:28

+0

@sza:即使您使用Xcode構建(這可能是一個錯誤,順便說一句,但也許您有一個很好的理由?)您仍然需要事先在命令行中提供'./configure --prefix = whatever'。 – 2011-04-09 06:10:18

回答

1

你的Makefile將試圖包含這些文件是很常見的,因爲autoconf文件有一條指令在將它們包含在Makefile中之前查找它們。但無論什麼原因,你有幾個編譯選項:

  1. 編輯src/Makefile。搜索$(bsdi_sources)並刪除所有匹配項然後重新制作(不要重新配置)
  2. 編輯configure.ac。搜索AM_CONDITIONAL(SYS_BSDI並替換爲SYS_BSDI='0'。然後重新運行./bootstrap & ./configure
  3. 運行SYS_BSDI="0" ./configure(單個命令)無需重新制作。
1

不要讓從./configure調試消息欺騙你:

checking dvd.h usability... no 
checking dvd.h presence... no 
checking for dvd.h... no 
checking /sys/dev/scsi/scsi_ioctl.h usability... no 
checking /sys/dev/scsi/scsi_ioctl.h presence... no 
checking for /sys/dev/scsi/scsi_ioctl.h... no 
checking sys/scsi/scsi_types.h usability... no 
checking sys/scsi/scsi_types.h presence... no 
checking for sys/scsi/scsi_types.h... no 
checking sys/scsi.h usability... no 
checking sys/scsi.h presence... no 
checking for sys/scsi.h... no 
checking IOKit/storage/IODVDMediaBSDClient.h usability... yes 
checking IOKit/storage/IODVDMediaBSDClient.h presence... yes 
checking for IOKit/storage/IODVDMediaBSDClient.h... yes 

這是建庫時,我得到了什麼。即使有些消息可能讓你擔心,但其中一些頭文件對於Mac系統並不重要。無論如何,我嘗試了以下,一切正常。我目前使用的是Mac OS X 10.6.7,只是要清楚,libdvdcss必須從cmd行構建。忘記XCode!

第一步是下載最新版本的庫。如果你檢查他們的homepage,你會發現,他們建議直接從他們的SVN庫下載來源:

svn co svn://svn.videolan.org/libdvdcss/trunk libdvdcs 

一旦下載完成,你的目錄內,執行這些命令將成功編譯庫:

./bootstrap 
./configure 
make 

如果你想測試它有一個名爲csstest測試目錄中的應用程序。首先,尋找到你的DVD安裝(請確保您有電腦內部的磁盤):

$ mount 
/dev/disk1 on /Volumes/DISK_NAME (udf, local, nodev, nosuid, read-only, noowners) 

,然後運行csstest

$ ./csstest /Volumes/DISK_NAME/VIDEO_TS/VTS_01_1.VOB 1024 
cool, I found libdvdcss version 1.2.10 
requested sector: 000001ba...30107f1c04e03100c031223e0c01017c86c08fff88ff... 
sector is not scrambled 

要在系統上安裝它,必須具有超級用戶訪問才能執行:

make install 
+0

@sza更新回答。 – karlphillip 2011-04-16 17:25:42