【发布时间】:2014-09-03 19:48:56
【问题描述】:
我正在尝试编译我的 flandmark,但它非常复杂。 C:\flandmark\libflandmark\CMakeLists.txt 我放在第一行:
set(OpenCV "C:/opencv248/sources/cmake")
对吗?
关注我的完整文件 CMakeList.txt:
set(OpenCV "C:/opencv248/sources/cmake")
find_package( OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_library(flandmark_static STATIC flandmark_detector.cpp flandmark_detector.h liblbp.cpp liblbp.h)
target_link_libraries(flandmark_static ${OpenCV_LIBS})
if(CMAKE_COMPILER_IS_GNUCC)
set_target_properties(flandmark_static PROPERTIES COMPILE_FLAGS -fPIC)
endif(CMAKE_COMPILER_IS_GNUCC)
set_property(TARGET flandmark_static PROPERTY COMPILE_DEFINITIONS FLANDMARK_STATIC)
add_library(flandmark_shared SHARED flandmark_detector.cpp flandmark_detector.h liblbp.cpp liblbp.h)
target_link_libraries(flandmark_shared ${OpenCV_LIBS})
#setup Config.cmake
SET(FLANDMARK_BASE_DIR "${PROJECT_SOURCE_DIR}/libflandmark")
set(FLANDMARK_BINARY_DIR "${PROJECT_BINARY_DIR}/libflandmark")
configure_file(flandmarkConfig.cmake.in
"${PROJECT_BINARY_DIR}/libflandmark/flandmarkConfig.cmake" @ONLY)
export(PACKAGE flandmark)
查看我通过 CMake-gui 执行时的结果:
OpenCV ARCH: x86
OpenCV RUNTIME: mingw
OpenCV STATIC: OFF
CMake Warning at C:/opencv248/build/OpenCVConfig.cmake:161 (message):
Found OpenCV Windows Pack but it has not binaries compatible with your
configuration.
You should manually point CMake variable OpenCV_DIR to your build of OpenCV
library.
Call Stack (most recent call first):
libflandmark/CMakeLists.txt:2 (find_package)
CMake Error at libflandmark/CMakeLists.txt:2 (find_package):
Found package configuration file:
C:/opencv248/build/OpenCVConfig.cmake
but it set OpenCV_FOUND to FALSE so package "OpenCV" is considered to be
NOT FOUND.
拜托,你能详细告诉我我必须做什么吗? 我不知道他们为什么不提供已经为我们编译的 .dll! :(
谢谢
【问题讨论】:
-
实际上,如果您已经运行了 opencv,您可以通过将 libflandmark 中的文件添加到您的项目来快捷方式(从而跳过整个 dll/cmake 问题
-
感谢回复,但我的问题是:我的应用程序是 JAVA,我使用了 java wrapper (javacv) + opencv(工作正常),但我需要生成 .dll 来集成 JAVA + dll。
标签: c++ opencv cmake mingw feature-detection