歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Qwt移植到S3C6410

Qwt移植到S3C6410

日期:2017/3/1 10:31:07   编辑:Linux編程

有一哥們問到關於qwt移植的問題,我就自己動手做了一下,發現還是比較容易的,示例程序也編譯通過了,現在將移植的過程記錄一下。

首先要說明一點的是在這之前,我的Qt-4.7.3已經移植成功了,這裡做的就是移植qwt並且在板子上測試示例程序。

第一步:下載最新的qwt源碼,主頁在這裡,我下載的是qwt-6.0.1.tar.bz2

第二步:解壓源碼,進入源碼目錄,我們來看看裡面的文件,主要是兩個一個是README和INSTALL,其中前者是關於這個項目的一些介紹,後者是針對不同平台編譯安裝的方法,裡面有這樣一句:The easiest way to build Qwt is from the command line - but you insist on using an IDE don't forget the "make install" step.就是說如果你用IDE(例如Qt Creator)來編譯的話,編譯成功後不要忘了在終端進入源碼目錄執行$ make install命令進行安裝。當然,如果你也可以一直在終端編譯和安裝不必借助IDE。

第三步:我們這裡借助IDE編譯,打開Qt Creator後打開qwt的工程,要編譯ARM版本的,那麼你就必須在Qt Creator中進行相關的設置,也就是添加一個工具鏈,如果有需要的話請留言,我可以截圖寫出具體的設置步驟。

第四步:我們來進行編譯,點擊 Build ALL,編譯的過程中會報錯,是關於一些Designer的頭文件找不到,因為qwt自定義了一些designer的插件,方便我們進行開發,所以需要一些Qt Designer的頭文件,由於我有qt源碼,所以這個還是比較好添加進去的,可是到最後又報錯:說是不能連接到Designer庫,我到我電腦上安裝的qt目錄下找了一下,發現X86版本的Qt的lib目錄下是有這些庫文件的,而在電腦上安裝的ARM版本的Qt裡面lib目錄下並沒有這些庫文件,這就無奈了,剛好我要的就是ARM版本的阿。後來我仔細一想,源於Qt Designer的插件應該只是在電腦上用來做開發的,而不是在板子上運行的,也就是說這部分內容在板子上壓根就不需要,所以,我打開qwtconfig目錄下的qwtconfig.pri配置文件,想屏蔽designer的編譯。在qwtconfig.pri文件的第102行,有這條語句:

QWT_CONFIG += QwtDesigner

這就是我要屏幕的內容,呵呵加“#”注釋掉。然後再編譯就通過了,接著進入到終端下執行make install就可以發現已經安裝了,默認的安裝目錄在哪裡呢,還是看一下qwtconfig.pri配置文件,在第22行有:

QWT_INSTALL_PREFIX = /usr/local/qwt-$QWT_VERSION

這就是默認的安裝目錄,可以自行修改,但是建議修改之後重新進行編譯再安裝。安裝好了之後進入安裝目錄發現示例程序並沒有編譯,我們再次看看配置文件,發現在第108行有:

# QWT_CONFIG += QwtExamples

這就是說工程默認是不編譯示例程序的,要編譯的話,就去掉注釋,OK,編譯完後會在qwt-6.0.1/examples目錄下生成bin目錄,下面就都是示例程序。

接下來,我們在板子上測試,只需要將安裝目錄下的lib子目錄下的幾個庫文件拷貝到板子文件系統的Qt的默認庫路徑下,然後將編譯出來的示例程序也拷貝下去。

我們燒寫新的文件系統,開機,運行程序,一切OK,無圖無真相,這裡我就上幾個圖:

呵呵,移植工作到這裡就完成了。

但是我們如果要在電腦上利用qwt來開發的話也必須有相應的庫文件,所以我們要編譯出一個qwt的X86版本,這個版本不必注釋designer部分,直接編譯就會通過,然後將生成的庫文件拷到電腦上Qt庫文件目錄下,將生成的designer的插件拷貝到$(QTDIR)/plugins/designer目錄下,啟動designer就可以看到qwt的插件了,截圖如下:

也可以編譯出X86的示例程序,運行如下:

好了,就到這吧!

Copyright © Linux教程網 All Rights Reserved