我已经waf使用以下方法克隆并构建了脚本:
./waf-light configure
Run Code Online (Sandbox Code Playgroud)
然后要构建我的项目(由Gomspace提供),我需要将waf和添加eclipse.py到我的路径中。到目前为止,我还没有找到比这个setenv脚本更好的:
WAFROOT=~/git/waf/
export PYTHONPATH=$WAFROOT/waflib/extras/:$PYTHONPATH
export PATH=~/git/waf/:$PATH
Run Code Online (Sandbox Code Playgroud)
调用方式:
source setenv
Run Code Online (Sandbox Code Playgroud)
这在某种程度上是一个非常丑陋的解决方案。有没有更优雅的方式来安装waf?
你没有安装waf。您找到的正确构建 waf 的命令:/waf-light configure build然后对于您创建的每个项目,您将构建的waf脚本放入该项目的根目录中。我找不到参考资料,但这就是 waf: 的主要作者 Thomas Nagy 希望使用该工具的方式。重新打包 waf 以使该工具可安装的项目并未得到“官方认可”。
不安装有优点和缺点:
缺点:
waf文件添加到您的存储库。好处:
Fedora(至少是 Fedora 22)有一个用于 waf 的 yum 软件包,因此您可以看到可以对 waf 进行系统安装,尽管需要破解。
运行类似的命令后python3 ./waf-light configure build,您将得到一个名为的文件,waf它实际上是一个 Python 脚本,末尾带有一些二进制数据。如果将其放入/usr/bin并以非 root 身份运行,则会出现错误,因为它无法在 /usr/bin 中创建目录。如果您以 root 身份运行它,您将获得新目录并/usr/bin/waf正常运行。
find_lib()这是我通过检查waf Python 脚本中的函数学到的技巧。
waf到/usr/bin/waf/usr/bin/waf. 请注意,它创建了一个目录。你会看到类似的东西/usr/bin/.waf-2.0.19-b2f63c807a4215294bf6005410c74c18.目录名称中的 ,例如mv /usr/bin/.waf-2.0.19-b2f63c807a4215294bf6005410c74c18 /usr/lib/waf-2.0.19-b2f63c807a4215294bf6005410c74c18/usr/bin/waf在 Python3 下运行 Python 脚本。在Python3下,目录名称将以.waf3-/开头waf3-,而不是.waf-/ waf-。/usr/bin/waf。/usr/bin/waf.也就是说,这里有一些需要考虑的事情,就像另一个答案所说的那样:我相信waf的作者希望将waf嵌入到项目中,以便每个项目都可以使用自己的waf版本,而不必担心当有较新版本时项目将无法构建的WAF。因此,单一全局版本用例似乎并未得到官方支持。