我无法从 flandmark v0.7 平台 x86 Win 7 生成 dll



我正在尝试编译我的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!:(

感谢

您只需将cmake gui中的OpenCV_DIR变量设置为OpenCV的构建目录即可。那么它应该可以毫无问题地工作。

嗨,伙计们,谢谢你们在这一步中帮助我。我已经解决了这个问题我遵循了Uricamic的方向,让我遵循有关解决方案的详细信息:

在cmake-gui中,设置变量OPENCV_DIR=C:/OPENCV/build/x86/vc12/staticclib我选择在哪里构建二进制文件:c:/flandmark-bin之后由Cmake gui生成,生成的结果:

C:flandmark-bin
  - CMakeCache.txt
  - CMakeFiles
  - examples
  - libflandmark
  - matlab_toolbox
C:flandmark-binCMakeFiles
   - cmake.check_cache
   - CMakeGNUtoMS_lib.bat
   - CMakeOutput.log
   - CMakeTmp
C:flandmark-binCMakeFiles3.0.1
   - CMakeCCompiler.cmake
   - CMakeCXXCompiler.cmake
   - CMakeDetermineCompilerABI_C.bin
   - CMakeDetermineCompilerABI_CXX.bin
   - CMakeRCCompiler.cmake
   - CMakeSystem.cmake
   - CompilerIdC
   - CompilerIdCXX
 C:flandmark-binCMakeFiles3.0.1CompilerIdC
   - a.exe
   - CMakeCCompilerId.c
C:flandmark-binCMakeFiles3.0.1CompilerIdCXX
   - a.exe
   - CMakeCXXCompilerId.cpp
C:flandmark-binCMakeFilesCMakeTmp
C:flandmark-binexamples
   - CMakeFiles
   - face.jpg
   - flandmark_model.dat
   - groupphoto.jpg
   - haarcascade_frontalface_alt.xml
   - seq_bruges04_300frames.avi
C:flandmark-binexamplesCMakeFiles
C:flandmark-binlibflandmark
  - CMakeFiles
  - flandmarkConfig.cmake
C:flandmark-binlibflandmarkCMakeFiles
C:flandmark-binmatlab_toolbox
   - mex
   C:flandmark-binmatlab_toolboxmex
     - CMakeFiles

这个疑虑解决了!

我的另一个疑问是,我如何生成.dll文件来启动生成的C:/flandmark bin(如上)?

相关内容

最新更新