我在 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:
如何使用 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”,以及其他未正确完成以允许在 linux 上工作的 windows 特定代码。
我已经得到了 linux 文件夹来生成二进制文件并且它们工作得很好,现在我只需要将这个功能合并到我自己的项目中..