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文件在我的機器上運行。CMake使用(預先包裝的標題和dll)創建一個exe和lib
當前限制:
當我將exe傳遞給我的朋友時,他無法在他的機器上運行它,因爲他被大量缺少的dll命中。 當我使用lib文件時,要在VS C++中創建一個新項目,在找不到頭文件時有一個致命錯誤。
我知道,我可以手動添加所有dll,或者爲lib打包所有頭文件和庫文件。但它肯定是累贅和醜陋的。
問:
是否CMake的提供了一種方法,讓編譯成
- 一個EXE文件時(它會自動找到所有必需的dll文件到bin目錄下)
- 進入一個lib(它會自動源出所有的頭文件,也爲部分連接到lib目錄中neccesary庫)
不是我所知道的。打包應用程序的部署一直是一項艱鉅的任務。 – karlphillip