2022年11月2日 星期三

在 Ubuntu 安裝 CxxlMan2 程式庫

這次的目標在安裝 CxxlMan2 程式庫和多國語言插件,以及用一個簡單的例子做範例。在 CxxlMan2 的部份先下載以下檔案,並解壓到一個資料夾中,我是放在 ~/MySrc

首先安裝好 C++ 編譯器,先下三道命令
$ sudo apt install gcc
$ sudo apt install c++
$ sudo apt-get install uuid-dev
再到 Ubuntu Software 安裝 CMake 及 Code::Blocks IDE,準備完成後就可以編譯安裝了。

編譯完成後的相關成品都要放到 /usr/local,也就是 Include 檔要放到 /usr/local/include,CxxlMan2 程式庫要放到 /usr/local/lib,Release 版的插件要放到 /usr/local/plugin,Debug 版的插件要放到 /usr/local/plugin_d。

首先處理 CxxlMan2 程式庫,打開 CMake 做以下步驟


▲設定好 Src 和 build 後按 Configure 做好配置



▲先設定編譯 Debug 版本後,按 Advanced 選框



採用 C++20 標準,再按 Generate 按鈕



下這命令開啟 CodeBlocks 才能安裝到 /usr/local



在 CodeBlocks 按 Ctrl-O 開啟 CxxlMan2.cbp



選擇 install 作為 Build 的目標

然後按下 Ctrl-F9 就能完成編譯和安裝,再到 CMake 


▲這次改成製作 Release 版,按 Generate 後回到 CodeBlocks


▲會出現這個,按下 All


然後按下 Ctrl-F9 就能完成 Release 版的編譯和安裝。

"多國語言插件" 的步驟和上面一樣就比照辦理。

"CMRegSelf 插件註冊輔助" 解開後複製以下兩個檔案到 usr/local/include,但要用 root 的權限複製

複製這兩個


"Sprintf 簡單風格字串格式化" 也一樣直接複製 SPRINTF.HPP 就好。在 C++20 標準有提供一套 std::format 的類群,可以做到 CxxlMan::Sprintf 的功能且更多,std::vformat 可適用於 "多國語言插件",所以應該改用 C++ 提供的,只是目前有支援的編譯器暫時還不多。

會用 CxxlMan::Sprintf 主要是因其中有提供一個範例,有針對 Linux 修正過,所以就用來驗證安裝是否順利。

範例一樣用 CMake 先做出配置,只不過這次不用安裝,也不用以 root 的權限來執行 CodeBlocks,執行時若出現找不到 CxxlMan2 程式庫的 .so 檔的訊息,可能是因 /usr/local/bin 不在執行期的搜尋路徑中,可以用 LD_LIBRARY_PATH 指定,上網找一下哪種方式適合你,以下是正確執行的截圖

範例執行截圖













沒有留言:

張貼留言