试图让stasm在Ubuntu上工作

时间:2012-12-06 01:51:33

标签: gcc compilation cmake

我在Cmake文件中有以下内容:

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++?,第一个答案,从linux文件夹中获取所有.o文件并将其放入存档。

但是当我在我的项目上运行 make 时,我得到:

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项目才能在linux上使用stasm?我还必须从stasm_dll.cpp中删除一个包含“windows.h”的n,以及其他没有正确执行的特定于Windows的代码,以便在linux上工作。

我已经获得了linux文件夹来生成二进制文件,它们工作得很好,现在我只需要将这个功能合并到我自己的项目中。

1 个答案:

答案 0 :(得分:0)

似乎原因是创建Stasm是为了在Windows上制作可执行图像处理的可执行文件。 Stasm不像一个库,我正在创建自己的静态和共享库,它将像一个库,可以用来导入随机项目并指定参数。

基本上将main.cpp修改为另一个类,并取出测试/不必要的代码并获得精简处理版本。