如何操作:在 macOS 上使用 CMake 建構基於 pylon 的應用程式#
問題#
如果您為 CMake 手動設定 pylon include 目錄,編譯專案時可能會失敗並出現以下錯誤訊息:
/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 ...