私は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
Linuxでstasmを使用するためのcmakeプロジェクトを以前に取得した人はいますか? また、stasm_dll.cpp からインクルード "windows.h" を削除する必要があり、Linux での作業を許可するために適切に実行されなかったその他の Windows 固有のコードも削除する必要がありました。
バイナリを生成するための linux フォルダーを既に取得しており、うまく機能しています。あとは、この機能を自分のプロジェクトに組み込むだけです。