SCons 的若干问题

问题1:找不到 SCons 的 Python3 库

CentOS7 使用 pip3 安装 SCons,默认安装位置是 /usr/local/bin/scons, 库(engine)的默认安装位置是 /usr/local/lib/python3.6/site-packages/scons,但在运行时默认的搜索 engine 的路径不包含安装路径,导致错误。(显然 SCons 没有处理好 Python2 和 Python3,只搜索了 Python2)

$ scons
SCons import failed. Unable to find engine files in:
  /usr/local/lib/scons-3.1.2
  /usr/lib/scons-3.1.2
  /usr/local/lib/scons-3.1.2
  /usr/lib/python2.7/site-packages/scons-3.1.2
  /usr/lib64/scons-3.1.2
  /usr/local/lib/scons
  /usr/lib/scons
  /usr/local/lib/scons
  /usr/lib/python2.7/site-packages/scons
  /usr/lib64/scons
Traceback (most recent call last):
  File "/usr/local/bin/scons", line 195, in <module>
    import SCons.Script
ImportError: No module named SCons.Script

解决方法

如下建立软链接,

$ sudo ln -fs /usr/local/lib/python3.6/site-packages/scons /usr/local/lib/scons

即可正常使用,

$ scons
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o hello.o -c hello.c
gcc -o hello hello.o
scons: done building targets.

对于 Ubuntu18.04 ,也存在同样的问题,使用 pip3 将把 SCons 库安装到 /usr/local/lib/python3.6/dist-packages/scons/,同样需要建立软链接,

$ sudo ln -fs /usr/local/lib/python3.6/dist-packages/scons /usr/local/lib/scons

 问题2:java 非标准安装情况下,找不到 javac

对于 java ,如果安装使用 OpenJDK,则 java, javac 会被安装到标准路径 /usr/bin/java/usr/bin/javac

但如果手动安装 Java,可能不是标准路径。例如,我如下安装 java,

$ cd /usr/share
$ sudo tar --gzip -xvf jdk-8u91-linux-x64.tar.gz

然后再设置环境变量,打开 .bashrc 添加,

# for java
export JAVA_HOME=/usr/share/jdk1.8.0_91
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

这样 java 和 javac 会在 /usr/share/jdk1.8.0_91/bin 下,但是 SCons 找不到……

解决方法

如下设置软链接,

$ sudo ln -s /usr/share/jdk1.8.0_91/bin/java /usr/local/bin/java
$ sudo ln -s /usr/share/jdk1.8.0_91/bin/javac /usr/local/bin/javac

然后才能用 SCons 编译 java。

……

原文地址:https://www.cnblogs.com/gaowengang/p/12558969.html