3

我正在尝试在新计算机上安装过去成功安装的代码,但遇到了问题。

这是在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'])
4

1 回答 1

1

事实证明,问题在于 atlas 将 libatlas.so 放在 /usr/lib(64)/ atlas /... 感谢@Dave_Bacher 提供有关如何处理此问题的信息,即

将 /usr/lib/atlas 添加到 default_env 中的 LIBPATH 数组中:

LIBPATH = [BUILD_LIB_DIR, /usr/lib/atlas]
于 2012-08-20T14:34:57.430 回答