opencv只在bin目录下编译dll,在lib目录下编译lib,在bin目录下不编译测试程序的各种exe
penCV是一个开源的计算机视觉库,它提供了多种编程语言的接口。如果你只想编译出DLL和Lib库文件,而不编译EXE(可执行文件),这通常是因为你想要进行某种形式的动态链接或者库的分发,而不关心EXE文件本身。
要实现这一点,你可以在CMake配置OpenCV时,设置BUILD_opencv_world标志为ON,这样会生成一个全局的DLL文件,包含了OpenCV的所有模块,然后设置不编译EXAMPLES和TESTS。
以下是一个简单的CMake配置示例,仅编译DLL和Lib库:
cmake_minimum_required(VERSION 3.0)
project(YourProject)
set(CMAKE_BUILD_TYPE Release)
set(CMAKE_CXX_STANDARD 11)
set(BUILD_opencv_world ON)
set(BUILD_EXAMPLES OFF)
set(BUILD_TESTS OFF)
set(BUILD_PERF_TESTS OFF)
set(BUILD_opencv_java OFF)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(YourExecutable main.cpp)
target_link_libraries(YourExecutable ${OpenCV_LIBS})
在这个配置中,我们关闭了所有的例子和测试编译,并且只生成了一个全局的DLL文件。你可以将YourExecutable
替换为你自己的项目名称,main.cpp
替换为你的主要源文件。
请注意,这样做可能会影响你动态链接OpenCV的能力,因为你现在只有一个大的DLL文件,而没有模块化的DLL文件。如果你需要多个DLL文件,你可能需要修改CMake配置或者使用OpenCV的预编译二进制版本。