我正在尝试安装我过去在新计算机上成功安装的代码,但遇到了问题。
这是 Fedora ,使用 scons 。之前的成功安装位于 Ubuntu 。
当我输入scons时,会出现以下错误:
/usr/bin/ld: cannot find -latlas
我已经通过yum成功安装了atlas-devel。
如果有帮助,你会在顶层SConstruct文件下面找到(---表示编辑代码)
BUILD_LIB_DIR = '#build/lib'
BUILD_INCLUDE_DIR = '#build/include'
BUILD_BIN_DIR = '#build/bin'
import os
default_env = Environment(ENV = os.environ, # use the system $PATH variable
CCFLAGS = ['-pipe', '-Wall'],
CXXFLAGS = ['-std=c++0x'],
CPPPATH = [BUILD_INCLUDE_DIR, '#src/'],
LIBPATH = [BUILD_LIB_DIR],
CPPDEFINES = ['_USE_LCM_'])
default_env.Append(LIBS = [---, 'lapack', 'blas', 'atlas', 'armadillo', 'rt'])
default_env.Alias('install', [BUILD_LIB_DIR, BUILD_INCLUDE_DIR, BUILD_BIN_DIR])
# Create the command-line options along with help text
vars = Variables()
vars.Add(BoolVariable('debug', 'Compile in debug mode with -g and -pg', 0))
vars.Add(EnumVariable('---'))
vars.Add(BoolVariable('log-data', 'Define LOG_DATA in the preprocessor so internal state of modules will be written to log files', 0))
Help(vars.GenerateHelpText(default_env))
debug = ARGUMENTS.get('debug', 0)
log = ARGUMENTS.get('log-data', 0)
if int(debug):
default_env.Append(CCFLAGS = ['-g', '-pg'])
default_env.Append(LINKFLAGS = ['-pg'])
else:
default_env.Append(CCFLAGS = ['-O3'])
if int(log):
default_env.Append(CPPDEFINES = ['LOG_DATA'])
log_env = default_env.Clone();
log_env.Append(LIBS=['global', 'readlog', 'z'])
Export(['default_env', 'log_env', 'BUILD_LIB_DIR', 'BUILD_INCLUDE_DIR', 'BUILD_BIN_DIR', ---])
SConscript(['src/SConscript',
'docs/SConscript'])
答案 0 :(得分:1)
事实证明问题是atlas把libatlas.so放在/ usr / lib(64)/ atlas / ... 感谢@Dave_Bacher提供有关如何处理此问题的信息,即
将/ usr / lib / atlas添加到default_env中的LIBPATH数组中:
LIBPATH = [BUILD_LIB_DIR, /usr/lib/atlas]