既然 OpenCV 已經是跨平台了, 我們程式的編譯環境當然也要是跨平台. 在這裡我使用 CMake. CMake 可以產生 Unix-like 系統下的 Makefile, 也可以產生 Visual Studio .Net 的專案檔.
因此, 用 CMake 來當作 build system , 應該是一個比較好的選擇.
那麼…
如何寫一個 CMakeLists.txt, 來編譯自己寫的 OpenCV 範例?
詳細作法如下:
原始程式: 請參考 “昨日” blog [code], 存檔成 openimage.cpp
程式功能: 用 OpenCV 開啟一張 jpeg 圖檔, 進行灰階化
下面是一個最簡單的 CMakeLists.txt:
------------------------------------------------------------
cmake_minimum_required(VERSION 2.5)
project(OpenImage)
MACRO(MY_DEFINE_EXAMPLE name srcs)
add_executable(${name} ${srcs})
# 設定 include path
include_directories("."
"C:\\OpenCV2.0\\."
"C:\\OpenCV2.0\\include"
"C:\\OpenCV2.0\\include\\opencv")
# 設定 library path (自己編譯出來的 OpenCV library 位置)
set(MYLIBPATH "C:\\Documents and
Settings\\Jing\\Desktop\\opencv_bin\\
lib\\release\\")
target_link_libraries(${name} ${MYLIBPATH}cv200.lib
${MYLIBPATH}cxcore200.lib
${MYLIBPATH}highgui200.lib
${MYLIBPATH}ml200.lib
${MYLIBPATH}cvaux200.lib)
# 使用 Unicode
add_definitions(-DUNICODE -D_UNICODE)
ENDMACRO(MY_DEFINE_EXAMPLE)
MY_DEFINE_EXAMPLE(openimage openimage.cpp)
------------------------------------------------------------
開始產生 Visual Studio .Net 專案檔
Step 1: 把 上面的 CMakeLists.txt 寫好, 並請寫好 openimage.cpp,
存到一個目錄中
Step 2: 開啟 CMake-gui, 產生 Visual Studio .Net 的專案
a. 點選 Configure
b. 點選 Generate
Step3: 到 src_bin 目錄中, 開啟 Visual Studio 進行編譯
Step4: Enjoy.
注意: 執行時, 要先把OpenCV 需要的 dll 位置設定好.
by Jing.
相關文章
[1] 井民全, “最簡單的 CMake 使用說明 – how to use cmake “