如何操作:在 macOS 上使用 CMake 建置基於 pylon 的應用程式#
問題#
若您手動為 CMake 設定 pylon 包含目錄,編譯專案時可能會因以下錯誤訊息而失敗:
/Library/Frameworks/pylon.framework/Headers/PylonIncludes.h:23:10: fatal error: 'Base/GCTypes.h'
解決方案#
建立一個 pylon 目錄位於 /Library/Frameworks/pylon.framework/Headers 並將所有標頭檔案從 /Library/Frameworks/pylon.framework/Headers 到新目錄中。範例:
cp /Library/Frameworks/pylon.framework/Headers/*.h /Library/Frameworks/pylon.framework/Headers/pylon
接著,請根據以下範本建立一個CMakeLists.txt檔案。以下腳本會編譯一個名為「Grab.cpp」的程式碼範例,您可由此處下載該範例。
cmake_minimum_required (VERSION 2.6)
project (Grab)
# The version number.
set (Tutorial_VERSION_MAJOR 1)
set (Tutorial_VERSION_MINOR 0)
set(CMAKE_CXX_STANDARD 11)
#set(PYLON_LIBRARY_DIR "/Library/Frameworks")
#set(PYLONINCLUDEPATH, "${PYLON_LIBRARY_DIR}/pylon.framework/Headers/")
include_directories(/Library/Frameworks/pylon.framework/Headers/ /Library/Frameworks/pylon.framework/Headers/GenICam/)
#set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl, -E")
set(BESLER_LIBRARIES
pylonbase
pylonutility
GenApi_gcc_v3_1_Basler_pylon_v5_1
GCBase_gcc_v3_1_Basler_pylon_v5_1
)
link_directories(/Library/Frameworks/pylon.framework/Libraries/)
# add the executable
add_executable(Grab Grab.cpp)
target_link_libraries(Grab ${BESLER_LIBRARIES})
請設定以下環境變數,以確保基於 Pylon 的應用程式能在執行時找到 Pylon 函式庫。
export DYLD_LIBRARY_PATH="/Library/Frameworks/pylon.framework/Libraries"
要建立測試樣本:
- 請將Grab.cpp和CMakeLists.txt這兩份檔案複製到目標系統中,並存放於您指定的目錄內。
- 建立一個名為「build」的子目錄
- 將工作目錄切換至build目錄
- 呼叫
cmake ...