Dear imgui專案配置記錄

2021-08-18 17:20:54 字數 1935 閱讀 5758

dear imgui是一款輕量級的gui 跨平台框架。

由於原文給的只是源**,編譯環境是基於ide的專案配置檔案,不是很方便。此處我將使用xmake這款輕量級的自動化編譯,來構建專案。

簡介

之所以使用xmake是因為,相比於cmake, xmake語法更加人性化,配置命令也很簡單,可讀性很強,強烈推薦。

一鍵安裝

bash <(wget 

/xmake/master

/scripts/get.sh -o -)

由於imgui 是依賴於opengl庫的,所以在使用之前會呼叫libgl.so共享庫。檔案位址在/usr/lib/x86_64-linux-gnu/目錄下。有時候可能鏈結的時候系統沒有包含這個目錄,需要自己新增這個鏈結位址。

由於原始檔會使用#include但是我是deepin系統,在/usr/include/gl這個資料夾下沒有找到gl3.h只有gl.h編譯的時候發現很多函式未定義,所以改為#include發現可以,該標頭檔案包含了需要的函式。

imgui 依賴glfw3這個庫,同時glfw3也有自己的依賴,所以配置鏈結檔案時的xmake檔案也成了關鍵問題。

glfw3的安裝,可以看官網,這裡就不做介紹了。主要看glfw3的依賴,在安裝完glfw3庫以後,可以通過如下命令,來了解lib的詳細資訊。

cat /usr/local/lib/pkgconfig/glfw3.pc
pkg-config 使用記錄

pkg-config 詳細介紹 強烈推薦

根據以上資訊 配置的xmake.lua檔案

-- the debug mode

if is_mode("debug") then

-- enable the debug symbols

set_symbols("debug")

-- disable optimization

set_optimize("none")

end

target("imgui")

set_kind("shared")

add_linkdirs("/usr/lib/x86_64-linux-gnu/","/usr/local/lib")

-- 新增鏈結的lib名稱

add_links("glfw3","gl","xrandr","x11","xi","xxf86vm","pthread","dl","xinerama","m","rt","xcursor")

add_headers("src/imgui/*.h")

add_files("src/imgui/*.cpp")

target("hello")

set_kind("binary")

-- 新增鏈結的目錄 方便ld尋找

-- add_linkdirs("/usr/lib/x86_64-linux-gnu/","/usr/local/lib")

-- 新增鏈結的lib名稱

-- add_links("glfw3","gl","xrandr","x11","xi","xxf86vm","pthread","dl","xinerama","m","rt","xcursor")

add_headers("src/imgui/*.h")

-- add files

add_files("src/main.cpp")

add_deps("imgui")

專案編譯完成 ,可以愉快的使用imgui啦。

專案記錄 架構

今天,專案負責人召集大家開會,要修改我們前面做的設計,並給我們展示了他這2天進行的架構設計。另外兩位同事都有自己的意見,一是覺得要需求牽引,不支援前期的可能是過度也可能是錯誤的設計 二是要修改的 量過大,前面的工作大部分都要重來。我看了 展示後,有這樣的感覺 1 架構設計得很好 2 寫得很好 3 擔...

自建專案記錄

1 kindeditor 使用注意點 1 將jsp包中的lib下的三個jar檔案放到web inf lib下面 2 若js出現報錯,右鍵報錯檔案 myeclispe exclude from validation 即可 3 在欲顯示編輯框的頁面的之間插入如下 注意,是假設kindeditor檔案放入...

angularjs專案記錄

1 如何去掉ng repeat中的 hashkey?答 使用ng repeat上加上 track by index 2 jquery change事件不實時 input輸入框的change事件,要在input失去焦點的時候才會觸發 input name myinput change function...