我下载并安装了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两次后,尝试按照写得很糟糕的自述文件,我想出了几乎可以工作的以下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 talk && ../../swtoolkit/hammer.sh *** Error loading site_init file './../../swtoolkit/site_scons/site_init.py': AttributeError: 'Dir' object has no attribute 'endswith': File "/usr/src/scons-local/scons-local-2.1.0.alpha.20101125/SCons/Script/Main.py", line 1338: _exec_main(parser, values) File "/usr/src/scons-local/scons-local-2.1.0.alpha.20101125/SCons/Script/Main.py", line 1302: _main(parser) File "/usr/src/scons-local/scons-local-2.1.0.alpha.20101125/SCons/Script/Main.py", line 929: _load_site_scons_dir(d.path, options.site_dir) File "/usr/src/scons-local/scons-local-2.1.0.alpha.20101125/SCons/Script/Main.py", line 719: exec fp in site_m File "./../../swtoolkit/site_scons/site_init.py", line 455: SiteInitMain() File "./../../swtoolkit/site_scons/site_init.py", line 451: SCons.Node.FS.get_default_fs().SConstruct_dir, None) File "/usr/src/scons-local/scons-local-2.1.0.alpha.20101125/SCons/Script/Main.py", line 677: site_dir = os.path.join(topdir, site_dir_name) File "/usr/lib/python2.6/posixpath.py", line 67: elif path == '' or path.endswith('/'): make: *** [build] Error 2
我猜测其中一个软件包中的新东西(一个'Dir'对象是预期POSIX路径字符串的位置)正在破坏构建过程,但是哪一个?这里有太多的残余层让我跟随。当然,我可以继续尝试更旧的软件包,特别是对于swtoolkit和scons,但如果有人在这里成功编译了libjingle并且能够朝着正确的方向刺激我,我会很感激。
答案 0 :(得分: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)
答案 1 :(得分:3)
我做了以下构建libjingle:
Libjingle是使用swtoolkit(http://code.google.com/p/swtoolkit/)构建的 是开源SCons构建工具(http://www.scons.org)的一组扩展。
首先,从http://www.python.org/安装Python 2.4或更高版本。 请注意,由于swtoolkit仅适用于Python 2.x,您将会这样做 无法使用Python 3.x。
其次,从中安装独立的scons-local软件包2.0.0或更高版本
http://www.scons.org/download.php并设置环境变量,
SCONS_DIR
,指向包含SCons的目录,例如,
/src/libjingle/scons-local/scons-local-2.0.0.final.0/
。
第三步,从http://code.google.com/p/swtoolkit/安装swtoolkit。
最后,Libjingle依赖于两个开源项目,expat和srtp。
从http://sourceforge.net/projects/expat/下载expat到
交谈/ THIRD_PARTY /外籍-2.0.1 /。按照说明进行操作
http://sourceforge.net/projects/srtp/develop下载最新的srtp到
交谈/ THIRD_PARTY / SRTP。请注意srtp-1.4.4
因为未命中而无法正常工作
Libjingle使用的扩展。
如果将expat或srtp放在不同的目录中,则需要进行编辑
talk/libjingle.scons
相应地。
2.1在Linux或OS X下构建Libjingle
SCONS_DIR
环境变量。talk/third_party/expat-2.0.1/configure
和
talk/third_party/srtp/configure
。$path_to_swtoolkit/hammer.sh
。跑
$path_to_swtoolkit/hammer.sh --help
有关如何构建的信息
不同的模式。export SCONS_DIR=/home/esumit/libjingle/libjingle-0.5.2/talk/third_party/scons-local/scons-local-2.0.1
安装libasound2-dev
Lib来编译libJingle,否则会遇到错误。
sudo apt-get install libasound2-dev
使用以下命令下载SRTP。如果它要求passowrd,只需按Enter键。
cvs -z3 -d:pserver:anonymous@srtp.cvs.sourceforge.net:/cvsroot/srtp co -P srtp
libjingle-0.5.2/talk/third_party$ ls
expat-2.0.1 libudev scons-local srtp swtoolkit
libjingle-0.5.2/talk$ ./third_party/swtoolkit/hammer.sh