天天看點

從零開始編譯安裝 Extcalc

Extcalc 是個非常強大的電腦,同時也是一個非常老的軟體包,已經不再更新。希望使用 apt-get 或是 dnf 安裝已經不可能,更何況我是在 mips 的龍芯 3A 上。唯一的方法就是編譯安裝。

Extcalc 是個非常強大的電腦,同時也是一個非常老的軟體包,已經不再更新。希望使用 apt-get 或是 dnf 安裝已經不可能,更何況我是在 mips 的龍芯 3A 上。唯一的方法就是編譯安裝。

我是在龍芯 3A4000 + Debian10 上完成安裝的,其他系統可能有些許差别。

編譯安裝

  • 獲得源碼包

從它的 sourceforge 首頁獲得源碼包: 傳送門

  • 編譯

README 内容的部分翻譯:

依賴的軟體:
Linux
GCC 4
QT4.3 或更高版本
OpenGL
cmake
           

如果有缺少,安裝即可。對于 GCC 4,我的版本是

gcc version 8.3.0 (Debian 8.3.0-6)

,編譯沒有大問題。對于 QT4.3, Debian 下運作

sudo apt-get install qt4-dev-tools

安裝
- 解壓縮 (tar -xzf extcalc-0.9.3.tar.gz)
- 切換到目錄 (cd extcalc-0.9.3)
- 運作 configure (cmake .)
- 編譯 (make)
- 切換為超級使用者 (su)
- 安裝 (make install)
           

按部就班來就可。

① cmake .

第一次編譯,報錯說找不到 qtcore,但是我可以手動找到它。于是我安裝了

cmake-gui

sudo apt-get install cmake-qt-gui

,使用

cmake-gui .

代替

cmake .

cmake-gui .

顯示

QT_QTCORE_LIBRARY_DEBUG

QT_QTCORE_LIBRARY_RELEASE

無法找到,全部手動定位為

/usr/lib/mips64el-linux-gnuabi64/libQtCore.so.4

即可。

單擊 Generate 之後再次報錯,顯示無法找到

QT_MOC_EXECUTABLE

QT_RCC_EXECUTABLE

QT_UIC_EXECUTABLE

QT_INCLUDE_DIR

。分别單擊 Add Entry 添加,前三個 Type 選為 FILEPATH ,分别對應為

/usr/bin/moc

/usr/bin/rcc

/usr/bin/uic

,最後一個 Type 選為 PATH,Value 為

/usr/share/qt4/include

。再次單擊 Generate 即成功。

第一次編譯我發現沒有 qt4 的 include ,于是安裝了

qt4-dev-tools

。第二次嘗試重制錯誤時錯誤消失。

② make

Warning 有忽略函數傳回值和 string 強制轉換為 char* ,沒有什麼大問題。

一個 error :

/usr/bin/ld: CMakeFiles/extcalc.dir/src/graphout.o: undefined reference to symbol 'glBlendFunc'
/usr/bin/ld: //lib/mips64el-linux-gnuabi64/libGL.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/extcalc.dir/build.make:994:extcalc] 錯誤 1
make[1]: *** [CMakeFiles/Makefile2:73:CMakeFiles/extcalc.dir/all] 錯誤 2
make: *** [Makefile:152:all] 錯誤 2
           

可見是 build.make 的第994行出錯,看看是啥:

$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/extcalc.dir/link.txt --verbose=
           

link.txt 裡面是用 c++ 把所有 .o 進行連結,而 glBlendFunc 是 Opengl 的一個函數,懷疑是編譯選項的問題。最後加上

-lGL

的選項再重新

make

即可成功完成編譯。

  • 安裝

③ make install

su

切換為超級使用者後

make install

即可安裝成功。指令行

extcalc

或單擊其應用程式圖示即可運作~

  • 解除安裝

安裝後,檢視目錄裡有個 install_manifest.txt 檔案,保留它。如果需要解除安裝,運作

cat install_manifest.txt | sudo xargs rm

即可。

生成 Debian 包

這一部分内容的可行性和是否會損害系統将由讀者自行判斷

① 安裝 checkinstall

sudo apt-get install checkinstall

② 編輯 CMakeLists.txt

SET(CPACK_INSTALL_CMAKE_PROJECTS "<路徑>;Extcalc;ALL;/")

一行中的

<路徑>

改為你現在所在編譯目錄的路徑;

SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "i386")

這有兩行同樣的,把

i386

改為你編譯生成的二進制檔案的體系架構,比如我這裡是

mips64el

修改後儲存。

③ sudo checkinstall

sudo checkinstall

,它會提示你輸入描述和确認一些東西,看情況選擇即可。

最後顯示

建立 Debian 包……OK

則建立成功,它同時會替你安裝這個包,顯示

安裝 Debian 包……OK

如此,我們可以友善地通過 dpkg 解除安裝它,也可以友善地用于下一次安裝。

by SDUST weilinfox

本文位址: