8

我下载并安装了 libjingle-0.5.2.zip,根据 README 还下载并安装了 swtoolkit.0.9.1.zip、scons-local-2.1.0.alpha.20101125.tar.gz 和 expat-2.0。 1.tar.gz,通过cvs下载得到nrtp。在覆盖了我的 Makefile 两次之后,尝试遵循写得相当糟糕的 README,我想出了以下几乎可以工作的 Makefile:


# First, make sure the SCONS_DIR environment variable is set correctly.
SCONS_DIR ?= /usr/src/scons-local/scons-local-2.1.0.alpha.20101125/
#SCONS_DIR ?= /usr/src/scons-local/
export
default: build
# Second, run talk/third_party/expat-2.0.1/configure...
talk/third_party/expat-2.0.1/Makefile:
    cd talk/third_party/expat-2.0.1 && ./configure
# ...and talk/third_party/srtp/configure.
talk/third_party/srtp/Makefile:
    cd talk/third_party/srtp && ./configure
# Third, go to the talk/ directory and run $path_to_swtoolkit/hammer.sh. Run
# $path_to_swtoolkit/hammer.sh --help for information on how to build for
# different modes.
build: talk/third_party/expat-2.0.1/Makefile talk/third_party/srtp/Makefile
    cd talk && ../../swtoolkit/hammer.sh
help:
    ../swtoolkit/hammer.sh --help

但是,make给了我以下错误:

jcomeau@intrepid:/usr/src/libjingle-0.5.2$ make
cd 谈话 && ../../swtoolkit/hammer.sh
*** 加载 site_init 文件 './../../swtoolkit/site_scons/site_init.py' 时出错:
AttributeError:“Dir”对象没有属性“endswith”:
  文件“/usr/src/scons-local/scons-local-2.1.0.alpha.20101125/SCons/Script/Main.py”,第 1338 行:
    _exec_main(解析器,值)
  文件“/usr/src/scons-local/scons-local-2.1.0.alpha.20101125/SCons/Script/Main.py”,第 1302 行:
    _main(解析器)
  文件“/usr/src/scons-local/scons-local-2.1.0.alpha.20101125/SCons/Script/Main.py”,第 929 行:
    _load_site_scons_dir(d.path,options.site_dir)
  文件“/usr/src/scons-local/scons-local-2.1.0.alpha.20101125/SCons/Script/Main.py”,第 719 行:
    在 site_m 中执行 fp
  文件“./../../swtoolkit/site_scons/site_init.py”,第 455 行:
    SiteInitMain()
  文件“./../../swtoolkit/site_scons/site_init.py”,第 451 行:
    SCons.Node.FS.get_default_fs().SConstruct_dir,无)
  文件“/usr/src/scons-local/scons-local-2.1.0.alpha.20101125/SCons/Script/Main.py”,第 677 行:
    site_dir = os.path.join(topdir, site_dir_name)
  文件“/usr/lib/python2.6/posixpath.py”,第 67 行:
    elif path == '' 或 path.endswith('/'):
制作:*** [构建] 错误 2

我猜想其中一个包中的一些新内容(“Dir”对象是 POSIX 路径字符串所在的位置)正在破坏构建过程,但是哪一个呢?这里有太多的杂物让我无法理解。当然,我可以继续尝试较旧的软件包,特别是对于 swtoolkit 和 scons,但如果这里有人成功编译了 libjingle 并且可以在正确的方向上刺激我,我将不胜感激。

4

2 回答 2

24

我不熟悉这个项目,但我想我有一个解决方法可以让你超越这一点。您需要使用swtoolkit/site_scons/site_init.py 转换这些Dir实例。str()这样他们就可以安全地被path.endswith('/'). 奇怪的是,这样的问题在构建基础设施的主要部分会存在很长时间:

第 330 行:

SCons.Script.Main._load_site_scons_dir(
    str(SCons.Node.FS.get_default_fs().SConstruct_dir), site_dir)

第 450 行:

SCons.Script.Main._load_site_scons_dir(
    str(SCons.Node.FS.get_default_fs().SConstruct_dir), None)
于 2011-03-08T23:23:17.147 回答
3

我做了以下构建 libjingle :

为 Linux 构建 LibJingle

  1. 如何建造

Libjingle 是使用 swtoolkit ( http://code.google.com/p/swtoolkit/ ) 构建的,它是开源 SCons 构建工具 ( http://www.scons.org ) 的一组扩展。

2.1 在 Linux 或 OS X 下构建 Libjingle

  • 首先,确保SCONS_DIR环境变量设置正确。
  • 第二,运行talk/third_party/expat-2.0.1/configuretalk/third_party/srtp/configure
  • 第三,进入talk/目录并运行$path_to_swtoolkit/hammer.sh。运行 $path_to_swtoolkit/hammer.sh --help以获取有关如何为不同模式构建的信息。

除上述步骤外,请参阅以下内容作为参考

设置 SCONS_DIR 路径

export SCONS_DIR=/home/esumit/libjingle/libjingle-0.5.2/talk/third_party/scons-local/scons-local-2.0.1

安装libasound2-devLib编译libJingle,否则会报错。

sudo apt-get install libasound2-dev

使用以下命令下载 SRTP。如果它要求输入密码,只需按 Enter。

cvs -z3 -d:pserver:anonymous@srtp.cvs.sourceforge.net:/cvsroot/srtp co -P srtp

LibJingle 目录中可能的组件

libjingle-0.5.2/talk/third_party$ ls
expat-2.0.1  libudev  scons-local  srtp  swtoolkit

执行以下命令构建 LibJingle

libjingle-0.5.2/talk$ ./third_party/swtoolkit/hammer.sh
于 2012-07-16T10:17:36.970 回答