2012-12-06 51 views
1

工作,我有以下的CMake的文件:試圖讓stasm在Ubuntu

add_library(stasm STATIC IMPORTED) 
set_property(TARGET stasm PROPERTY 
      IMPORTED_LOCATION /media/Data/sdks/stasm3.1/linux/libstasm.a) 
target_link_libraries(StasmOpencvExample ${OpenCV_LIBS} stasm) 

我產生libstasm.a做:

How to create a static library with g++?,第一個答案,把所有的.o文件從linux文件夾中放入檔案中。

,但是當我在我的項目運行化妝我得到:

Scanning dependencies of target StasmOpencvExample 
[100%] Building CXX object CMakeFiles/StasmOpencvExample.dir/stasm_opencv_example.cpp.o 
Linking CXX executable StasmOpencvExample 
CMakeFiles/StasmOpencvExample.dir/stasm_opencv_example.cpp.o: In function `main': 
stasm_opencv_example.cpp:(.text+0x9a): undefined reference to `AsmSearchDll(int*, int*,  char const*, char const*, int, int, int, char const*, char const*)' 
collect2: ld returned 1 exit status 

有沒有人得到了一個cmake的項目,stasm在Linux上之前的工作?我還必須從stasm_dll.cpp中刪除一個包含「windows.h」的文件,以及其他特定於Windows的代碼,這些代碼沒有正確完成以允許在linux上工作。

我已經得到了Linux文件夾生成二進制文件和他們的工作很好,現在我只需要將此功能合併到自己的項目..

回答

0

看來,原因是Stasm的建立是爲了使執行圖像處理的Windows上的可執行文件。 Stasm不會像圖書館一樣行事,我現在正在製作我自己的靜態和共享庫,它將像一個庫,可以用來導入一個隨機項目並指定參數。

基本上將main.cpp修改爲另一個類並取出測試/不必要的代碼並獲得一個精簡處理版本。