問題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。
……
