美文网首页
在debian系统下编译并安装openpilot

在debian系统下编译并安装openpilot

作者: 小马狂奔啊 | 来源:发表于2018-12-09 18:25 被阅读0次

    环境信息

    linux 4.9.0 debian 9.6.0

    下载openpilot源码

    sudo apt-get install curl
    sudo apt-get install build-essential gdb wget debhelper p7zip-full unzip flex bison
    sudo apt-get install libsdl1.2-dev
    sudo apt-get install libudev-dev
    sudo apt-get install libusb-dev libusb-1.0-0-dev
    sudo apt-get install libc6-i386
    mkdir -p ~/code
    cd ~/code
    sudo apt-get install git-core git-doc gitk
    git clone https://github.com/openpilot/OpenPilot.git
    cd ~/code/OpenPilot
    git checkout -b next origin/next
    git pull
    make all_sdk_install
    make all

    遇到的问题

    问题1:make all_sdk_install中会遇到md5验证错误的问题

    解决方法:

    手动下载所需软件,并制作md5文件,修改 OpenPilot/make/tools.mk中的下载地址为你本机上的file。
    qt的下载地址:http://mirror.bit.edu.cn/qtproject/archive/qt/5.4/5.4.0/qt-opensource-linux-x64-5.4.0.run
    Uncrustify下载地址:http://see.sl088.com/wiki/Uncrustify

    问题2:all_sdk_install过程中遇到

    QSslSocket: cannot resolve CRYPTO_num_locks
    QSslSocket: cannot resolve CRYPTO_set_id_callback
    QSslSocket: cannot resolve CRYPTO_set_locking_callback
    QSslSocket: cannot resolve ERR_free_strings
    QSslSocket: cannot resolve EVP_CIPHER_CTX_cleanup
    QSslSocket: cannot resolve EVP_CIPHER_CTX_init
    QSslSocket: cannot resolve sk_new_null
    QSslSocket: cannot resolve sk_push
    QSslSocket: cannot resolve sk_free
    QSslSocket: cannot resolve sk_num
    QSslSocket: cannot resolve sk_pop_free
    QSslSocket: cannot resolve sk_value
    QSslSocket: cannot resolve SSL_library_init
    QSslSocket: cannot resolve SSL_load_error_strings
    QSslSocket: cannot resolve SSL_get_ex_new_index
    QSslSocket: cannot resolve SSLv2_client_method
    QSslSocket: cannot resolve SSLv3_client_method
    QSslSocket: cannot resolve SSLv23_client_method
    QSslSocket: cannot resolve SSLv2_server_method
    QSslSocket: cannot resolve SSLv3_server_method
    QSslSocket: cannot resolve SSLv23_server_method
    QSslSocket: cannot resolve X509_STORE_CTX_get_chain
    QSslSocket: cannot resolve OPENSSL_add_all_algorithms_noconf
    QSslSocket: cannot resolve OPENSSL_add_all_algorithms_conf
    QSslSocket: cannot resolve SSLeay
    QSslSocket: cannot resolve SSLeay_version
    QSslSocket: cannot call unresolved function CRYPTO_num_locks
    QSslSocket: cannot call unresolved function CRYPTO_set_id_callback
    QSslSocket: cannot call unresolved function CRYPTO_set_locking_callback
    QSslSocket: cannot call unresolved function SSL_library_init
    QSslSocket: cannot call unresolved function SSLv23_client_method
    QSslSocket: cannot call unresolved function sk_num

    解决方案:

    apt install libssl1.0-dev
    https://blog.csdn.net/niutou_ren/article/details/77430224

    问题三:make all的过程中,unable to find string literal operator 'operator""fmt' with 'const char [15]'

    解决方案:

    C++11要求,当字符串跟变量连接的时候,必须fmt前后增加一个空格才行。
    '#define show_log(tag, fmt, arg...) printf("[%s][%s:%d]: " fmt "\n", tag, func, LINE, ##arg)

    问题四:出现类似tmux: error while loading shared libraries: libQt5Xml.so.5找不到动态库的错误

    解决方案:

    使用find / -name libQt5Xml.so.5
    找到地址后使用export LD_LIBRARY_PATH=your_lib:$LD_LIBRARY_PATH加入类库
    https://www.cnblogs.com/SZxiaochun/p/7685499.html

    问题五:error: no matching function for call to ‘QTableWidgetItem::setFlags(bool)’

    解决方法:

    将/OpenPilot/ground/openpilotgcs/src/plugins/uavsettingsimportexport/importsummary.cpp
    81行 item->setFlags(!Qt::ItemIsSelectable);改成
    item->setFlags(objName->flags() & !Qt::ItemIsSelectable);
    https://www.qtcentre.org/threads/67784-no-matching-function-for-call-to-QTableWidgetItem-setFlags(bool)

    问题六:error: call of overloaded ‘abs(int)’ is ambiguous

    解决方法:

    将abs改为fabs,并在文件加入include <cstdlib>
    http://lib.csdn.net/article/cplusplus/26202

    问题七:error: ‘constexpr’ needed for in-class initialization of static data member

    解决方案:

    这是在结构体内定义double类型需要把const变成constexpr

    相关文章

      网友评论

          本文标题:在debian系统下编译并安装openpilot

          本文链接:https://www.haomeiwen.com/subject/kadkhqtx.html