2012-01-27 99 views
1

我在將clapack鏈接到我在linux上的cmake項目上很困難,並且非常感謝任何幫助。將Clapack鏈接到cmake項目Linux

我已經成功構建並將clapack鏈接到osx上的相同項目,這使得這種情況特別令人沮喪。

我第一次下載clapack-3.2.1-cmake並編譯了項目。然後,我將.a和相關的.h文件複製到項目根目錄下的一個名爲CLAPACK的目錄中。 (libblas.a,libf2c.a,liblapack.a和libtmglib.a到CLAPACK中的CLAPACK/lib和blaswrap.h,clapack.h和f2c.h)

然後我改變了我的項目的cmake文件以包含

INCLUDE_DIRECTORIES(${VMT_PRJ_SOURCE_DIR}/CLAPACK) 
LINK_DIRECTORIES(${VMT_PRJ_SOURCE_DIR}/CLAPACK/lib) 
LINK_LIBRARIES(f2c blas lapack tmglib) 

這些步驟讓我編我的Mac上,但在該項目轉移到Linux操作系統中,並重新編譯CLAPACK庫我收到鏈接看起來像這樣

/home/siggik/Development/SFT-9012/CLAPACK/lib/liblapack.a(sgesvd.c.o): In function  `sgesvd_': 
sgesvd.c:(.text+0x456): undefined reference to `s_cat' 
sgesvd.c:(.text+0x1fa4): undefined reference to `s_cat' 
/home/siggik/Development/SFT-9012/CLAPACK/lib/liblapack.a(sormbr.c.o): In function `sormbr_': 
sormbr.c:(.text+0x39f): undefined reference to `s_cat' 
sormbr.c:(.text+0x45c): undefined reference to `s_cat' 
sormbr.c:(.text+0x527): undefined reference to `s_cat' 

任何幫助將是錯誤大。謝謝,

斯科特

回答

1

有些接頭是sentisitive,其中靜態鏈接時,他們的庫傳遞的順序。

嘗試播放與庫訂貨或來看看編譯命令行OS X.

而且,看看通過CLAPACK安裝的文件 - 也許有一些CMake的模塊狀ClapackConfig.cmake或FindClapack.cmake。如果是這樣,你可以從那裏得到正確的libs命令。

+0

正確的先生,我想我已經在適當的順序,但事實證明它需要是 LINK_LIBRARIES(lapack blas tmglib f2c) – Scottfivefour 2012-01-27 20:10:50