建立zxing的cpp / lib在Fedora14下失败,即使按照说明完全正确

时间:2011-09-23 05:23:28

标签: python build scons zxing

也就是说,遵循zxing / cpp / README中的说明,即“仅构建库”: - 在此文件夹(cpp)'

中运行“scons lib”

嗯,这正是我所做的。但我明白了:

 scons lib
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
o build/core/src/zxing/BarcodeFormat.o -c -O0 -g3 -ggdb -Wall -Ibuild/core/src build/core/src/zxing/BarcodeFormat.cpp
sh: o: command not found

有了这个“O:命令未找到”重复多次。

我认为问题可能是找不到gcc,所以我检查了一下:它已安装。在我放弃试图弄清楚为什么要寻找命令'o'之前,我只是简单地看了一下scons的python。当然没有。

顺便说一下:我在三天前使用wget获得了zxing 1.7的副本,今天安装了'scons'。所以它们是最新的。

1 个答案:

答案 0 :(得分:0)

你可能是正确的,并且SCons没有找到GCC。最好的办法是添加一个调用来显示某些(或所有)环境的内容。如下所示,您可以提取特定变量,或show the whole environment。最好的地方可能是对构建器(SharedLibrary,StaticLibrary或Program)的调用。对于名为“env”的环境:

print env.Dump()
print env['CC']
print env['CXX']

确保最初使用适当的默认环境(可能类似):

env = DefaultEnvironment( ... )

或者系统上的环境变量(包括路径)正在传播到SCons。一种方法是:

import os
# ...
env = Environment( ENV = os.environ, ... )

在极端情况下,您可以通过提供编译器的显式路径来解决此问题:

env['CC'] = '/usr/bin/gcc'

修改

这些更改需要在适当的SConstruct或SConscript文件中进行。这取决于确切的项目,以及您想要实现的目标 - 在谷歌代码的当前版本的zxing的情况下,在SConscript file <的第40行或附近进行更改是合理的/ p>