如何使用Xcode在Mac上编译libdvdcss?

如何使用Xcode在Mac上编译libdvdcss?,c,xcode,macos,C,Xcode,Macos,我想知道如何在MacOSX上使用Xcode编译libdvdcss的源代码?文件bsdi_ioctl.c包含/sys/dev/scsi/scsi.h和/sys/dev/scsi/scsi_ioctl.h的include语句 我所做的是先运行/bootstrap和/configure生成config.h,但我仍然遇到了问题 有人能解释一下吗?您的Makefile会尝试包含这些文件,这是不寻常的,因为autoconf文件在将它们包含到您的Makefile之前有一条查找它们的指令。但不管是什么原因,您都

我想知道如何在MacOSX上使用Xcode编译libdvdcss的源代码?文件
bsdi_ioctl.c
包含
/sys/dev/scsi/scsi.h
/sys/dev/scsi/scsi_ioctl.h
的include语句

我所做的是先运行
/bootstrap
/configure
生成
config.h
,但我仍然遇到了问题


有人能解释一下吗?

您的Makefile会尝试包含这些文件,这是不寻常的,因为autoconf文件在将它们包含到您的Makefile之前有一条查找它们的指令。但不管是什么原因,您都有两个编译选项:

  • 编辑src/Makefile。搜索
    $(bsdi_源)
    并删除所有事件,然后重新制作(不重新配置)
  • 或编辑configure.ac。搜索
    AM\u条件(SYS\u BSDI
    并替换为
    SYS\u BSDI='0'
    。然后重新运行。/bootstrap&。/configure
  • 或者运行
    SYS\u BSDI=“0”。/configure
    (单个命令)以重新生成,而不使用

  • 不要让来自
    /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!

    第一步是下载库的最新版本。如果您查看他们的,您会注意到他们建议直接从其SVN存储库下载源:

    svn co svn://svn.videolan.org/libdvdcss/trunk libdvdcs
    
    下载完成后,您进入目录后,执行这些命令将成功编译库:

    ./bootstrap
    ./configure
    make
    
    如果要测试,测试目录中有一个名为csstest的应用程序。首先,找到DVD的安装位置(确保计算机中有磁盘):

    然后运行csstest:

    要在系统上安装,您必须具有超级用户访问权限才能执行:

    make install
    

    通常的方法是
    /configure--prefix=whatever;make;make install
    。不是每个程序都遵循这一点,但很多程序都遵循这一点。如果失败,请尝试剪切粘贴详细信息。我并不是说如何在命令行上编译它。@sza:即使您使用Xcode进行编译(顺便说一句,这可能是个错误,但您可能有很好的理由?)您仍然需要事先从命令行中获取
    /configure--prefix=which
    。我在问题中提到了这一点。您能否提供一些版本,以便我们知道您使用的是什么?
    $ ./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