作者:彭軍 郵件:hellotim##foxmail.com 近來幫朋友編譯一個SIFT匹配的程序,可是裏面不僅用到了OpenCV,而且用到了GSL,但是在編譯的過程中,OpenCV的配置是沒有什麼問題了,可是GSL一直不行,在用VC6.0進行編譯的時候,總是出現類似與如下的錯誤: xform.obj : error LNK2001: unresolved external symbol _gsl_rng_free 一想既然是LINK時的錯誤,肯定是lib文件有關係了。看到GSL的lib文件夾下面並沒有後綴名爲lib的文件。但是又看到有後綴名爲def的文件,我知道通過def文件是可以導出dll和lib文件的了。而且在網絡上也看到可以用VS的lib命令來導出適合VS用的.lib文件,於是打開cmd窗口。 D:/Program Files/GnuWin32/lib>lib /machine:i386 /def:libgsl.def Creating library libgsl.lib and object libgsl.exp D:/Program Files/GnuWin32/lib>lib /machine:i386 /def:libgslcblas.def Creating library libgslcblas.lib and object libgslcblas.exp D:/Program Files/GnuWin32/lib> 可以看到lib文件夾下已經有了libgsl.lib和libgslcblas.lib這樣的話,我們只要將這兩個lib文件添加到工程Link頁中就可以了,如下: 當然了,要用GSL的話,也需要在VC的目錄中添加GSL的include目錄、lib目錄和bin目錄,如下: 從添加的Include目錄可以看出,當你用GSL裏面的頭文件時,需要類似與這樣的引用: #include <gsl/gsl_rng.h>當然,如果你在添加Include目錄是添加的是:D:/Program Files/GnuWin32/include/gsl 那麼就不需要前面的gsl,只要如此引用就可以了:#include <gsl_rng.h> 還有一點需要說明的是GSL中已經沒有gsl_rng_free.h了,所以你需將其改爲gsl_rng.h 你可以在這裏下載這個經典SIFT的圖像匹配程序的VC程序: http://download.csdn.net/source/1352136 你可以在這裏下載GSL(GNU Scientific Library)1.8: |
使用GNU Scientific Library(GSL)及GSL的配置(轉自彭軍)
2009年05月26日 12:45
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.