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