/ usr / bin / ld:找不到-latlas

时间:2012-08-17 19:53:00

标签: compilation fedora ld scons atlas

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

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

1 个答案:

答案 0 :(得分:1)

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

  

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

LIBPATH = [BUILD_LIB_DIR, /usr/lib/atlas]