Я пытаюсь использовать библиотеки Intel MKL в первый раз. Я использую CMake для создания простого проекта, в котором используется MKL. Я работаю в среде KDevelop 4.6.KDevelop4: Ошибка при загрузке разделяемых библиотек
Проект построен и установлен без ошибок. Связывание библиотек, таким образом, является успешным. При выполнении в KDevelop, я получаю следующее сообщение об ошибке:
Error while loading shared libraries: libmkl_intel_lp64.so: cannot open shared object file: No such file or directory
Файл CMakeLists выглядит в основном следующим образом:
project(testmkl)
cmake_minimum_required(VERSION 2.6)
enable_language(Fortran)
set(CMAKE_C_FLAGS "-std=c99 -Wall -lpthread")
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
# MKL
find_package(MKL REQUIRED)
include_directories(${MKL_INCLUDE_DIR})
find_package(M REQUIRED)
include_directories(${M_INCLUDES})
add_executable(testmkl ./main.c)
target_link_libraries(testmkl ${M_LIBRARIES} ${MKL_BLAS} ${MKL_LAPACK} ${MKL_INTEL} ${MKL_SEQUENTIAL} ${MKL_CORE})
install(TARGETS testmkl DESTINATION .)
libmkl_intel_lp64.so
находится в первой папке переменной в LP_LIBRARY_PATH
окружающей среды, поэтому я не ожидал бы никакой ошибки во время выполнения. Фактически, при запуске программы из окна команд все работает нормально.
Выход LDD для исполняемого файла:
>> ldd ./testmkl
linux-vdso.so.1 => (0x00007fff951fe000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003061a00000)
libm.so.6 => /lib64/libm.so.6 (0x0000003061200000)
libmkl_intel_lp64.so => /opt/intel/composer_xe_2013_sp1.0.080/mkl/lib/intel64/libmkl_intel_lp64.so (0x00007f6f65ef6000)
libmkl_sequential.so => /opt/intel/composer_xe_2013_sp1.0.080/mkl/lib/intel64/libmkl_sequential.so (0x00007f6f65846000)
libmkl_core.so => /opt/intel/composer_xe_2013_sp1.0.080/mkl/lib/intel64/libmkl_core.so (0x00007f6f64317000)
libc.so.6 => /lib64/libc.so.6 (0x0000003060e00000)
/lib64/ld-linux-x86-64.so.2 (0x0000003060600000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003061600000)
Связанные библиотеки, таким образом, правильно нашли. Почему программа не работает в среде KDevelop?
Любая помощь приветствуется, спасибо!
Мое предположение было бы что у KDevelop есть другая среда, у меня нет ее перед собой, поэтому вам нужно просто подталкивать некоторые варианты и видеть, что она что-то переопределяет. Или если вы недавно изменили 'LD_LIBRARY_PATH', что ваш сеанс, где был запущен KDevelop, не отражает этого. –