shaunakde shaunakde - 1 month ago 10
C++ Question

Configuration file for scons in an ubuntu system

I am trying to install this tool (ISCE) on my computer running Ubuntu 14.04.

My scons configuration file is as follows:

# The directory in which ISCE will be built
PRJ_SCONS_BUILD= $HOME/isce
# The directory into which ISCE will be installed
PRJ_SCONS_INSTALL= $HOME/isce
PRJ_LIB_DIR = $HOME/isce/lib
# The location of libraries, such as libstdc++, libfftw3 (for most system
# it's /usr/lib and/or /usr/local/lib/ and/or /opt/local/lib)
LIBPATH='/usr/lib/x86_64-linux-gnu/' '/usr/lib/x86_64-linux-gnu/4.8'
# The location of Python.h. If you have multiple installations of python
# make sure that it points to the right one
CPPPATH='/home/shaunak/anaconda2/envs/ISCEp35/include/python3.xm'
# The location of the fftw3.h (most likely something like /usr/include or
# /usr/local/include /opt/local/include
FORTRANPATH='/usr/include'
# The location of your Fortran compiler. If not specified it will use the system one
FORTRAN='/usr/bin/gfortran'
# The location of your C compiler. If not specified it will use the system one
CC='/usr/bin'
# The location of your C++ compiler. If not specified it will use the system one
CXX='/usr/bin'


When I try to execute the command to install as instructed by the README:
SCONS_CONFIG_DIR=~/isce scons -Q install
it fails with the error message:

Error. Cannot locate the stdc++ library in the directories specified by LIBPATH in the SConfig file.
Exception: :
File "/home/shaunak/isce/SConstruct", line 46:
sconsConfigFile.setupScons(env,sconsSetupFile)
File "/home/shaunak/isce/configuration/sconsConfigFile.py", line 384:
retDict = setupCompilers(retDict)
File "/home/shaunak/isce/configuration/sconsConfigFile.py", line 282:
dict = setupLinux(dict)
File "/home/shaunak/isce/configuration/sconsConfigFile.py", line 221:
raise Exception


I have tried to search each library with the
locate
command and all the paths seem to be accurate. I cant seem to understand why the compilation is failing. For instance
locate libstcc++
yields:

/usr/lib/gcc/x86_64-linux-gnu/4.8/libstdc++.a
/usr/lib/gcc/x86_64-linux-gnu/4.8/libstdc++.so
/usr/lib/gcc/x86_64-linux-gnu/4.8/32/libstdc++.a
/usr/lib/gcc/x86_64-linux-gnu/4.8/32/libstdc++.so
/usr/lib/gcc/x86_64-linux-gnu/4.8/32/libstdc++_pic.a
/usr/lib/gcc/x86_64-linux-gnu/4.8/x32/libstdc++.a
/usr/lib/gcc/x86_64-linux-gnu/4.8/x32/libstdc++.so
/usr/lib/gcc/x86_64-linux-gnu/4.8/x32/libstdc++_pic.a
/usr/lib/i386-linux-gnu/libstdc++.so.6
/usr/lib/i386-linux-gnu/libstdc++.so.6.0.19
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19

Answer

Try this:

LIBPATH=['/usr/lib/x86_64-linux-gnu/', '/usr/lib/x86_64-linux-gnu/4.8']

Recall that SCons files are Python, and lists in Python are represented by [item1, item2, ...].

Comments