cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
project(ImageProc)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
find_package(PCL 1.2 REQUIRED)
find_package(OpenCV REQUIRED)
add_definitions( -fPIC -Wall -O3)
include_directories(${PCL_INCLUDE_DIRS})
#link_directories(${PCL_LIBRARY_DIRS}) Dont think neccesary..
add_definitions(${PCL_DEFINITIONS})
add_executable (ImageProc svm.cpp ImageProc.cpp testImageProc.cpp)
target_link_libraries (ImageProc ${OpenCV_LIBS} ${PCL_LIBRARIES})
add_library(ImageProcLib STATIC svm.cpp ImageProc.cpp)
target_link_libraries (ImageProcLib ${OpenCV_LIBS} ${PCL_LIBRARIES})
目前,我运行它并使用 VS C++ 打开并生成一个 exe 和 lib。该exe在我的机器上运行。
当前限制:
当我将 exe 传递给我的朋友时,他无法在他的机器上运行它,因为他被缺少的 dll 主机击中。当我使用 lib 文件在 VS C++ 中创建一个新项目时,找不到头文件会出现致命错误。
我知道,我可以手动添加所有 dll 和/或打包 lib 的所有头文件和库文件。但它肯定也很麻烦和丑陋。
问题:
CMake 是否提供了一种方法,以便在编译成
- 一个exe(它会自动在bin目录中找到所有必要的dll)
- 进入一个库(它会自动将所有头文件以及链接部分的必要库导出到 lib 目录中)