Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 犰狳与libacml的关联问题_C++_Cmake_Linker_Armadillo - Fatal编程技术网

C++ 犰狳与libacml的关联问题

C++ 犰狳与libacml的关联问题,c++,cmake,linker,armadillo,C++,Cmake,Linker,Armadillo,我正在研究一个小型神经网络,主要是作为一个训练示例(我希望在使用mlpack之前能够自己做) 所以我试着安装acml,用我的gpu加速一些矩阵运算。我无法让它工作,所以我尝试禁用它,现在我在编译时遇到了这个警告 /usr/bin/ld:警告:未找到/usr/lib64/libarmadillo.so所需的libacml\u mp.so(请尝试使用-rpath或-rpath链接) 当然,在运行时我会遇到以下错误: /home/sapphie/Documents/CLionProjects/Firs

我正在研究一个小型神经网络,主要是作为一个训练示例(我希望在使用mlpack之前能够自己做) 所以我试着安装acml,用我的gpu加速一些矩阵运算。我无法让它工作,所以我尝试禁用它,现在我在编译时遇到了这个警告
/usr/bin/ld:警告:未找到/usr/lib64/libarmadillo.so所需的libacml\u mp.so(请尝试使用-rpath或-rpath链接)

当然,在运行时我会遇到以下错误:
/home/sapphie/Documents/CLionProjects/FirstNNTest/cmake build debug/FirstNNTest:加载共享库时出错:libacml\u mp.so:无法打开共享对象文件:没有此类文件或目录

我尝试过设置LD_LIBRARY_PATH和LIBRARY_PATH变量,尝试过修补rpath和rpath link,但什么都没有,我一直遇到这些问题

/usr/bin/ld: warning: libacml_mp.so, needed by /usr/lib64/libarmadillo.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libgfortran.so.3, needed by /opt/acml5.3.1/gfortran64/lib/libacml.so, not found (try using -rpath or -rpath-link)
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_internal_unpack@GFORTRAN_1.0'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_transfer_integer_write@GFORTRAN_1.4'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_concat_string@GFORTRAN_1.0'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_stop_string@GFORTRAN_1.0'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_transfer_character_write@GFORTRAN_1.4'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_st_write_done@GFORTRAN_1.0'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_st_read@GFORTRAN_1.0'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_string_index@GFORTRAN_1.0'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_transfer_integer@GFORTRAN_1.0'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_compare_string@GFORTRAN_1.0'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_transfer_real_write@GFORTRAN_1.4'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_internal_pack@GFORTRAN_1.0'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_pow_i4_i4@GFORTRAN_1.0'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_st_read_done@GFORTRAN_1.0'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_st_write@GFORTRAN_1.0'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/FirstNNTest.dir/build.make:123: FirstNNTest] Error 1
make[1]: *** [CMakeFiles/Makefile2:68: CMakeFiles/FirstNNTest.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
现在,如果我尝试通过cmake链接ACML,我会遇到另一组更有趣的问题

/usr/bin/ld: warning: libacml_mp.so, needed by /usr/lib64/libarmadillo.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libgfortran.so.3, needed by /opt/acml5.3.1/gfortran64/lib/libacml.so, not found (try using -rpath or -rpath-link)
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_internal_unpack@GFORTRAN_1.0'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_transfer_integer_write@GFORTRAN_1.4'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_concat_string@GFORTRAN_1.0'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_stop_string@GFORTRAN_1.0'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_transfer_character_write@GFORTRAN_1.4'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_st_write_done@GFORTRAN_1.0'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_st_read@GFORTRAN_1.0'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_string_index@GFORTRAN_1.0'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_transfer_integer@GFORTRAN_1.0'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_compare_string@GFORTRAN_1.0'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_transfer_real_write@GFORTRAN_1.4'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_internal_pack@GFORTRAN_1.0'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_pow_i4_i4@GFORTRAN_1.0'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_st_read_done@GFORTRAN_1.0'
/opt/acml5.3.1/gfortran64/lib/libacml.so: undefined reference to '_gfortran_st_write@GFORTRAN_1.0'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/FirstNNTest.dir/build.make:123: FirstNNTest] Error 1
make[1]: *** [CMakeFiles/Makefile2:68: CMakeFiles/FirstNNTest.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
使用以下cmakelist:

cmake_minimum_required(VERSION 3.7)
project(FirstNNTest)

set(CMAKE_CXX_STANDARD 11)

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
find_package(Armadillo REQUIRED)
find_package(ACML REQUIRED)
include_directories(${ARMADILLO_INCLUDE_DIRS})
include_directories(${ACML_INCLUDE_DIRS})



set(SOURCE_FILES main.cpp Network.cpp Network.h Tools.h)
add_executable(FirstNNTest ${SOURCE_FILES})
target_link_libraries(FirstNNTest ${ARMADILLO_LIBRARIES} ${ACML_LIBRARIES})

我在这个问题上花了好几个小时,差点就要重新安装整个操作系统了。

根据错误消息,问题不在于您的项目,而在于
acml
gfortran
库。你有这些库吗(准确的名称在错误日志中)?ACML安装在那里,但我似乎无法在那个地方或我系统上的任何其他地方找到gfortran.so。