2011-04-09 42 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