zoukankan      html  css  js  c++  java
  • 从零开始编译安装 Extcalc

    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-guisudo apt-get install cmake-qt-gui ,使用 cmake-gui . 代替 cmake .

    cmake-gui . 显示 QT_QTCORE_LIBRARY_DEBUGQT_QTCORE_LIBRARY_RELEASE 无法找到,全部手动定位为 /usr/lib/mips64el-linux-gnuabi64/libQtCore.so.4即可。

    单击 Generate 之后再次报错,显示无法找到 QT_MOC_EXECUTABLEQT_RCC_EXECUTABLEQT_UIC_EXECUTABLEQT_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 包

    这一部分内容的可行性和是否会对系统造成损害将由读者自行判断
    (这是我第一次打包)

    编辑 CMakeLists.txt

    SET(CPACK_INSTALL_CMAKE_PROJECTS "<路径>;Extcalc;ALL;/") 一行中的 <路径> 改为你现在所在编译目录的路径;

    SET(CPACK_DEBIAN_PACKAGE_ARCHITECTURE "i386") 这有两行同样的,把 i386 改为你编译生成的二进制文件的体系架构,比如我这里是 mips64el

    修改后保存。

    CMakeLists.txt 本身已经把所有需要的设置都搞好了,我们直接生成它就好了。

    cpack -G DEB 生成deb包, cpack -G RPM 生成rpm包。

    也可以使用 checkinstall ,但是不太会用:

    安装 checkinstall

    sudo apt-get install checkinstall

    sudo checkinstall

    sudo checkinstall ,它会提示你输入描述和确认一些东西,看情况选择即可。

    最后显示 创建 Debian 包……OK 则创建成功,它同时会替你安装这个包,显示 安装 Debian 包……OK

    如此,我们可以方便地通过 dpkg 卸载它,也可以方便地用于下一次安装。


    by SDUST weilinfox

    本文地址:https://www.cnblogs.com/weilinfox/p/12650351.html

  • 相关阅读:
    帧同步资料收集
    随机数种子问题
    【转】 DOTA2中的伪随机及其lua实现
    C++ 异常机制分析
    细说new与malloc的10点区别
    static关键字总结
    C++11 并发编程基础(一):并发、并行与C++多线程
    论一个程序员的自我修养
    gSoap的多线程程序
    面试常见问题:
  • 原文地址:https://www.cnblogs.com/weilinfox/p/12650351.html
Copyright © 2011-2022 走看看