也就是说,遵循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'。所以它们是最新的。答案 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>