2009年10月16日 星期五

[C++] 如何用 CMake 來編譯最簡單的 OpenCV 範例 – open image

snap003

既然 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,
               存到一個目錄中

snap003

Step 2:  開啟 CMake-gui, 產生 Visual Studio .Net 的專案

                 a. 點選 Configure
                 b. 點選 Generate

snap003 

Step3: 到 src_bin 目錄中, 開啟 Visual Studio 進行編譯

snap003

Step4: Enjoy.

snap003

注意: 執行時, 要先把OpenCV 需要的 dll 位置設定好.

 

by Jing.

 

相關文章

[1] 井民全, “最簡單的 CMake 使用說明 – how to use cmake