0
我一直坐在这里一段时间,真的不明白发生了什么事情。 我与cmake和犰狳/ lapack/blas有以下问题:链接armadillo/blas/lapack with cmake(undefined reference to`dgemv_')
我尝试下载与cmake犰狳,编译它,然后将其链接到我的程序。
但是,虽然我可以下载,编译等,我有麻烦连接到我的程序。
我链接到一个可执行文件时出现以下错误: undefined reference to `dgemv_'
所以我知道这是一个LAPACK/BLAS的事情,但我无法弄清楚什么是错的。
我的CMakeLists.txt中的相关部分如下。 如果有人能帮助我,我会很高兴。我沮丧地接近吃掉我的键盘。
ExternalProject_Add(ArmadilloDownload
PREFIX ${LIBRARY_OUTPUT_PATH}/armadillo-7.100.3
DOWNLOAD_COMMAND wget http://sourceforge.net/projects/arma/files/armadillo-7.100.3.tar.xz
CONFIGURE_COMMAND tar -xf ../armadillo-7.100.3.tar.xz -C ../ArmadilloDownload --strip-components=1
BUILD_IN_SOURCE 1
BUILD_COMMAND cmake .
INSTALL_COMMAND make
UPDATE_COMMAND ""
)
set(Armadillo_DIR ${LIBRARY_OUTPUT_PATH}/armadillo-7.100.3/src/ArmadilloDownload)
set(ARMADILLO_LIBRARY ${Armadillo_DIR}/libarmadillo.so)
set(ARMADILLO_INCLUDE_DIR ${Armadillo_DIR}/include/)
include_directories(${ARMADILLO_INCLUDE_DIR})
set(GCC_ARMADILLO_LINK_FLAG "-O1 -llapack -lblas")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_ARMADILLO_LINK_FLAG}")
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${GCC_ARMADILLO_LINK_FLAG}")
你不应该指定连接标志的方式。看看CMake如何工作,特别是'target_link_libraries'。 – usr1234567
我认为你如何设置链接器标志(参见[这里](http://stackoverflow.com/questions/11783932/how-to-add-linker-or-compile-flag-in-cmake-file))。我把这些标志放到'traget_link_library'中,但这也不起作用(同样的错误) – DUWUDA
@ usr1234567现在我也尝试使用'target_compile_options',它也不能用于'target_compile_options(程序PRIVATE -O1 -llpack -lblas) ' – DUWUDA