1. 程式人生 > 其它 >FreeBSD桌面環境gnome3下編譯nanogui庫

FreeBSD桌面環境gnome3下編譯nanogui庫

需要以下檔案

pybind11:https://files.cnblogs.com/files/lishuaicq/pybind11-2.9.2.zip?t=1649311812

nanovg:https://files.cnblogs.com/files/lishuaicq/nanovg.zip?t=1649311805

nanogui:https://files.cnblogs.com/files/lishuaicq/nanogui-0.0.5.zip?t=1649311797

glfw:https://files.cnblogs.com/files/lishuaicq/glfw-3.3.7.zip?t=1649311780

 

參考檔案:

nanogui修改後可build的配置檔案:https://files.cnblogs.com/files/lishuaicq/nanogui%E4%BF%AE%E6%94%B9%E5%90%8E%E5%8F%AFbuild%E7%9A%84cmake%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6.zip?t=1649314258

 

1.把pybind11和nanovg,glfw解壓後的檔案複製到nanogui的ext下,各目錄檔案對應放置

2.編譯解壓後glfw檔案,編譯成so檔案

3.在nanogui目錄下的glfw目錄中建立一個lib目錄用來存glfw的so檔案,一共有三個

4.修改nanogui的CMakeLists.txt檔案,如果使用的是3.2版本不需要,3.3版以上因為沒有glfw_object專案,所以會報錯

  1)NANOGUI_USE_GLAD_DEFAULT項都設定為ON

  2)NANOGUI_BUILD_EXAMPLE項設定為OFF

  3)NANOGUI_GLFW_BACKEND項設定為ON

  4)NANOGUI_BUILD_PYTHON設定為OFF(可選)

  5)NANOGUI_VULKAN_NOSDK設定為OFF(可選)

  6)  替換下面的程式碼,在524行if判斷NANOGUI_GLFW_BACKEND OR NANOGUI_VULKAN_BACKEND方法內

     原來的程式碼:                                        add_library(nanogui ${NANOGUI_LIBRARY_TYPE}                                          $<TARGET_OBJECTS:nanogui-obj>                                          $<TARGET_OBJECTS:glfw_objects>                                       )      需要修改的程式碼:              # 下面的這行是新增的,指定庫的目錄              link_directories(${CMAKE_CURRENT_SOURCE_DIR}/ext/glfw/lib)              add_library(nanogui ${NANOGUI_LIBRARY_TYPE}             $<TARGET_OBJECTS:nanogui-obj>             #$<TARGET_OBJECTS:glfw> ## 這裡是需要你手動修改的              )              target_link_libraries(nanogui glfw) ## 這裡是新增的程式碼       另外還有一個地方需要修改,680行的程式碼:            原:set_target_properties(glfw_objects PROPERTIES POSITION_INDEPENDENT_CODE ON)            改:set_target_properties(glfw PROPERTIES POSITION_INDEPENDENT_CODE ON) 5.進入nanogui目錄下,建立一個build目錄,cmake .. 命令後,把glfw生成的三個so檔案複製到build目錄下的ext_build/glfw/src目錄裡 6.回到nanogui目錄的build用make -j<num>命令執行操作,<num>表示併發數量,如 -j4 7.編譯結束就可以使用了   現在的問題:nanogui的例子程式碼能跑起來的只有3,4,icon三個,1和2會報錯,編譯環境使用的是14標準,這個或許是因為我用的FreeBSD 13吧,也許可以設定,但懶得去找       在用cmake使用時需要引入libnanogui.so和nanogui的include標頭檔案,nanovg的src資料夾全部內容即可,不使用額外的glad和glfw也能正常編譯,但不知道是不是快取原因導致,後面再折騰吧