【问题标题】:I Can't generate dll from flandmark v0.7 Plataform x86 Win 7我无法从 flandmark v0.7 Plataform x86 Win 7 生成 dll
【发布时间】: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


【解决方案1】:

您只需将 cmake-gui 中的 OpenCV_DIR 变量设置为 OpenCV 的构建目录即可。然后它应该可以正常工作。

【讨论】:

  • 感谢尿酸!!但是你能指定我把这个 OPENCV_DIR 放在什么文件上吗?将是:将(OpenCV_DIR "C:\opencv248\build\x86\vc10\lib") 设置为 libflandmark\CMakeLists.txt ?
  • 我需要放置什么特定路径?你是说特指这条路吗? OPENCV_DIR: C:/opencv248/build/x86/vc12/staticlib
【解决方案2】:

大家好,感谢您在这一步中帮助我。我已经解决了这个问题 我遵循了 Uricamic 的指导,让我关注解决方案的详细信息:

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

C:\flandmark-bin
  - CMakeCache.txt
  - CMakeFiles
  - examples
  - libflandmark
  - matlab_toolbox
C:\flandmark-bin\CMakeFiles
   - cmake.check_cache
   - CMakeGNUtoMS_lib.bat
   - CMakeOutput.log
   - CMakeTmp
C:\flandmark-bin\CMakeFiles\3.0.1
   - CMakeCCompiler.cmake
   - CMakeCXXCompiler.cmake
   - CMakeDetermineCompilerABI_C.bin
   - CMakeDetermineCompilerABI_CXX.bin
   - CMakeRCCompiler.cmake
   - CMakeSystem.cmake
   - CompilerIdC
   - CompilerIdCXX
 C:\flandmark-bin\CMakeFiles\3.0.1\CompilerIdC
   - a.exe
   - CMakeCCompilerId.c
C:\flandmark-bin\CMakeFiles\3.0.1\CompilerIdCXX
   - a.exe
   - CMakeCXXCompilerId.cpp
C:\flandmark-bin\CMakeFiles\CMakeTmp
C:\flandmark-bin\examples
   - CMakeFiles
   - face.jpg
   - flandmark_model.dat
   - groupphoto.jpg
   - haarcascade_frontalface_alt.xml
   - seq_bruges04_300frames.avi
C:\flandmark-bin\examples\CMakeFiles
C:\flandmark-bin\libflandmark
  - CMakeFiles
  - flandmarkConfig.cmake
C:\flandmark-bin\libflandmark\CMakeFiles
C:\flandmark-bin\matlab_toolbox
   - mex
   C:\flandmark-bin\matlab_toolbox\mex
     - CMakeFiles

这个疑问解决了!

我的另一个疑问是如何从 C:/flandmark-bin 生成(上图)开始生成 .dll 文件?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-26
    • 2018-06-26
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多