我使用以下命令克隆并构建了waf
脚本:
./waf-light configure
字符串
然后,为了构建我的项目(由Gomspace提供),我需要将waf
和eclipse.py
添加到我的路径中。到目前为止,我还没有找到比setenv
更好的脚本:
WAFROOT=~/git/waf/
export PYTHONPATH=$WAFROOT/waflib/extras/:$PYTHONPATH
export PATH=~/git/waf/:$PATH
型
致电:
source setenv
型
这是一个相当丑陋的解决方案。有没有更优雅的方式来安装waf?
2条答案
按热度按时间fnatzsnv1#
你没有安装waf。你找到的命令正确地构建了waf:
/waf-light configure build
然后对于你创建的每个项目,你把构建的waf
脚本放到该项目的根目录中。我找不到参考,但这是waf:s的主要作者托马斯纳吉希望使用该工具的方式。重新打包waf以使工具可安装的项目不是“官方认可的”。不安装有优点和缺点:
缺点:
waf
文件添加到存储库中。优点:
33qvvth12#
Fedora(至少Fedora 22)有一个waf的yum包,所以你可以看到它可以做一个waf的系统安装,尽管有一个hack。
在运行类似
python3 ./waf-light configure build
的程序后,你会得到一个名为waf
的文件,它实际上是一个Python脚本,末尾有一些二进制数据。如果你把它放入/usr/bin
并以非root身份运行,你会得到一个错误,因为它无法在/usr/bin中创建一个目录。如果你以root身份运行它,你会得到一个新的目录,/usr/bin/waf
正常运行。下面是我在检查waf Python脚本中的
find_lib()
函数时学到的技巧。1.将
waf
复制到/usr/bin/waf
1.以root身份运行
/usr/bin/waf
。注意,它创建了一个目录。1.将目录mv到/usr/lib,删除目录名中的
.
,例如mv /usr/bin/.waf-2.0.19-b2f63c807a4215294bf6005410c74c18 /usr/lib/waf-2.0.19-b2f63c807a4215294bf6005410c74c18
1.如果你想在Python 3中使用waf,重复步骤2-3,在Python 3下运行Python脚本
/usr/bin/waf
。在Python 3下,目录名将以.waf3-
/waf3-
而不是.waf-
/waf-
开头。1.删除
/usr/bin/waf
末尾的二进制数据。1.现在,非root用户应该可以使用
/usr/bin/waf
。也就是说,这里有一些东西需要考虑,就像另一个答案所说的:我相信waf的作者希望waf嵌入到项目中,这样每个项目都可以使用自己的waf版本,而不用担心当有新版本的waf时项目会无法构建。