Qt添加第三方庫


如下為Linux下的操作

一。下載需要用到的第三方庫的源碼,如libcurl ,並用tar命令解壓

  http://curl.haxx.se/download.html

二。創建一個文件用於保存庫文件,如/curl_lib

三。進入解壓后的libcurl目錄,執行  ./configure --prefix=/curl_lib --enable-static --enable-shared

  其中,/curl_lib為之前創建的保存文件, --enable-static --enable-shared 分別表示生成靜態庫與動態庫

四。執行make命令

五。執行make install 命令

六。在/curl_lib目錄下生成include(頭文件)與lib(庫文件)的目錄

七。Qt上導入第三方庫應用

  (1)在Qt .pro文件中添加上述步驟所產生的include文件路徑

    /home/workspace/Qt/Qt2/test/curl_lib/include

  (2)在Qt .pro文件中添加上述步驟所產生的lib文件路徑

    /home/workspace/Qt/Qt2/test/curl_lib/lib

  (3)如此,就可以在Qt中調用curl的庫了

八。Qt上導入第三方庫libwebsockets

  (1)安裝cmake(經驗:安裝較老的版本沒那么多意想不到的問題,此處安裝cmake-3.2.0-rc1.tar.gz)

    安裝方法:A)下載並解壓源碼

         B)cd到文件目錄 ,執行./bootstrap

         C)make && make install

  (2)安裝openssl(經驗:安裝較老的版本沒那么多意想不到的問題,此處安裝openssl-1.0.0a)

    安裝方法:A)下載並解壓源碼

         B)cd到文件目錄,執行./config  shared --prefix=/usr/local/ssl_arm

            make && make install(prefix 是安裝目錄,shared 作用是生成動態連接庫

           (在配置前加入CC=arm-none-linux-gnueabi-gcc 可以指定編譯器 , CC=arm-none-linux-gnueabi-gcc ./config no-asm shared --prefix=/usr/local/ssl_arm)

         C)如果程序在PC(x86)上運行,不需要指定CC,因為默認為gcc

     (3)安裝zlib

        A) export CC=arm-none-linux-gnueabi-gcc   //如果編譯器路徑已經添加到PATH可以省略,經驗最好都加上此句

             B)./configure --prefix=/usr/local/zlib_arm      //最后生成的庫、頭文件都在xxx目錄下
             C)  make && make install

        D) 如果程序在PC(x86)上運行,export CC=gcc


  (4)下載libwebsockets庫並解壓(經驗:下載最新的版本沒那么多意想不到的問題,此處下載libwebsockets-3.0-stable.zip)

  (5)cd進入文件目錄,mkdir build目錄

  (6)cd build ,  cmake ..  -DLWS_OPENSSL_INCLUDE_DIRS=/usr/local/ssl_arm/include/  -DLWS_OPENSSL_LIBRARIES="/usr/local/ssl_arm/lib/libssl.so;/usr/ssl_arm/lib/libcrypto.so"

    更多的配置(根據需要選擇編譯器與lib、include文件路徑):

              cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/libwebsocket_arm \
                    -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_C_COMPILER=arm-none-linux-gnueabi-gcc  \
                    -DCMAKE_CXX_COMPILER=arm-none-linux-gnueabi-g++  \
                    -DZLIB_INCLUDE_DIR=/usr/local/zlib_arm/include \
                    -DZLIB_LIBRARY="/usr/local/zlib_arm/lib/libz.a"  \
                    -DLWS_OPENSSL_INCLUDE_DIRS=/usr/local/ssl_arm/include/\      
             -DLWS_OPENSSL_LIBRARIES="/usr/local/ssl_arm/lib/libssl.so;/usr/local/ssl_arm/lib/libcrypto.so"

          注:libz.a 原為lib.so,報錯,改為libz.a就正確了

            include/ 下還有一級目錄openssl,不能放到此路徑中,會報錯

  (7)make && make install

  (8)編譯好后,libwebsockets的頭文件在 libwebsocket_arm/include,庫文件在libwebsocket_arm/lib

  (9)根據第七點,修改Qt .pro文件即可(此處需要注意導入的路徑,根據程序在板子上跑還是PC上跑填入不同路徑

    下面##pc  下  ssl_pc 、libwebsocket_pc 、libqrencode_pc 都是用gcc編譯出來的文件,用於在PC上調試程序 , ##ARM 下的是用 arm-none-linux-gnueabi-gcc 編譯出來的文件,在板子上跑

    

 

九。QT上移植libqrencode

  (1)從http://fukuchi.org/works/qrencode/ 下載libqrencode(qrencode-3.4.4.tar.gz)

    並用tar命令解包

  (2)./configure --prefix=/homel/libqrencode-arm --host=arm-none-linux-gnueabi --without-tools 

    此處--prefix  指定庫文件的路徑,--host指定編譯器(根據程序是在PC還是在開發板上跑選擇不同的編譯器) --without-tools (不需要zlib、libpng庫)

  (3)make && make install

 

十。補充

  當程序是在開發板上運行時,按照上述編譯各種庫后,還需要把編譯成的庫放在QT的目錄下

        

 

 

以上,

2018-9-18


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM