Linux正在嵌入式開發領域穩步發展。因為Linux使用GPL(請參閱本文後面的參考資料),所以任何對將Linux定製於PDA、掌上機或者可佩帶設備感興趣的人都可以從網際網路免費下載其內核和應用程序,並開始移植或開發。許多Linux改良品種迎合了嵌入式/實時市場。它們包括RTLinux(實時Linux)、uclinux(用於非MMU設備的Linux)、MontavistaLinux(用於ARM、MIPS、PPC的Linux分發版)、ARM-Linux(ARM上的Linux)和其它Linux系統
嵌入式Linux開發大致涉及三個層次:引導裝載程序、Linux內核和圖形用戶界配鎮鉛面(或稱GUI)。引導裝載程序通常是在任何硬體上執行的第一段代碼。在象台式機這樣的常規系統中,通常將引導裝載程序裝入主引導記錄(MasterBootRecord,(MBR))中,或者裝入Linux駐留的磁碟的第一個扇區中。通常,在台式機或其它系統上,BIOS將控制移交給引導裝載程序。
專用軟體可以直接與遠程系統上的快閃記憶體設備進行交互並將引導裝載程序安裝在快閃記憶體的給定位置中。快閃記憶體設備是與存儲設備功能類似的特殊晶元,而且它們能持久存儲信息—即,在重新引導時不會擦除其內容。旅腔
某些種類的嵌入式設備具有微小的引導代碼—根據幾個位元組的指令—它將初始化一些DRAM設置並啟用目標上的一個串列(或者USB,或者乙太網)埠與主機程序通信。然後,主機程序或裝入程序可以使用這個連接將引導裝載程序傳送到目標上,並將它寫入快閃記憶體。設置工具鏈在主機機器上創建一個用於編譯將在目標上運行的內核和應用程序的構建環境—這是因為目標硬體可能沒有與主機兼容的二進制執行級別。
工具鏈由一套用於編譯、匯編和鏈接內核及應用程序的組件組成。這些組件包括:Binutils—用於操作二進制文件的實用程序集合。它們包括諸如ar、as、objmp、obj這樣的實用程序。G—GNUC編譯器。Glibc—所有用戶應用程序都將鏈接到的C庫。避免使用任何C庫函數的內核和其它應用程序可以在沒有該培好庫的情況下進行編譯。構建工具鏈建立了一個交叉編譯器環境。本地編譯器編譯與本機同類的處理器的指令。交叉編譯器運行在某一種處理器上,卻可以編譯另一種處理器的指令。重頭設置交叉編譯器工具鏈可不是一項簡單的任務:它包括下載源代碼、修補補丁、配置、編譯、設置頭文件、安裝以及很多很多的操作。另外,這樣一個徹底的構建過程對內存和硬碟的需求是巨大的。如果沒有足夠的內存和硬碟空間,那麼在構建階段由於相關性、配置或頭文件設置等問題會突然冒出許多問題。
因此能夠從網際網路上獲得已預編譯的二進制文件是一件好事(但不太好的一點是,它們大多數只限於基於ARM的系統,但遲早會改變的)。一些比較流行的已預編譯的工具鏈包括那些來自Compaq(FamiliarLinux)、LART(LARTLinux)和Embedian(基於Debian但與它無關)的工具鏈—所有這些工具鏈都用於基於ARM的平台。從用戶的觀點來看,圖形用戶界面(GUI)是系統的一個最至關重要的方面:用戶通過GUI與系統進行交互。所以GUI應該易於使用並且非常可靠。但它還需要是有內存意識的,以便在內存受限的、微型嵌入式設備上可以無縫執行。所以,它應該是輕量級的,並且能夠快速裝入。
另一個要考慮的重要方面涉及許可證問題。一些GUI分發版具有允許免費使用的許可證,甚至在一些商業產品中也是如此。另一些許可證要求如果想將GUI合並入項目中則要支付版稅。
最後,大多數開發人員可能會選擇XFree86,因為XFree86為他們提供了一個能使用他們喜歡的工具的熟悉環境。但是市場上較新的GUI,象CenturySoftware的(Nano-X)和TrolltechQT/Embedded,與X在嵌入式Linux的競技舞台中展開了激烈競爭,這主要是因為它們佔用很少的資源、執行的速度很快並且具有定製窗口構件的支持。
② 如何在linux下使用Clion開發Qt的Gui程序
准備工作:已安裝好的QtCreator環境,但是覺得QtCreator不好用,轉用其他開發工具
第一步,使用Clion創建一個++項目,如下圖:
第二步,修改CMakeLists.txt和main.cpp文件:
1). CMakeLists.txt修改如下:
cmake_minimum_required(version 3.3)
project(Widget)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
#打開Qt的MOC功能和UI文件處理功能
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin)
#查找Qt的庫
find_package(Qt5Widgets)
set(SOURCE_FILES main.cpp Widget.cpp Widget.h)
add_executable(Widget ${SOURCE_FILES})
target_link_libraries(Widget Qt5::Widgets)
2). main.cpp文件修改如下:
#include <QtWidgets/QApplication>
#include <QtWidgets/QLabel>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QMainWindow>
int main(int argc, char* argv[]) {
QApplication a(argc, argv);
QMainWindow *window = new QMainWindow;
window->setFixedSize(500, 500);
// window->setLayout(vbLayout);
window->show();
return a.exec();
}
第三步,如何使用Qt的ui文件並生成.h文件
1). 配置ui-designer, 打開Clion的External-Tools配置項,Program參數請填寫你的QtDesigner位置,其他參數可參照圖上所示填寫
2). 配置UIC,生成.h文件,Program參數請填寫你的UIC應用,QtDesigner同目錄下,
其他參數可參照圖上所示填寫
3). 在項目中新建一個ui文件,選中文件,使用右鍵我們添加的擴展工具編輯UI,然後保存後,再使用UIC
生成我們需要的.h文件。
第四步: 其他的我就不多說了,各位請盡享Clion帶來的開發樂趣吧!
③ 現在linux下作gui開發,有什麼工具
Linux GUI開發當然用Qt(KDE)或者Gtk+(Gnome)了
穩定
然後他們都是可移植的。
要想在linux下面程式設計,首先得熟習linux的使用才行,學習的大體過程我描迅在下面,希望對你有幫助:1.鳥哥的私房菜基礎篇。這是學習linux系統的使用。2.....................伺服器篇。可以看些簡單的伺服器構建:tftp,ftp,nfs,dhcp.以後用的到。...
一般來說,LINUX下很少用到IDE,linux講究的就是簡潔,透明
EMACS是很多人用的一個編輯器,功能很全面,只是慢了一點.
編譯器使用g++ 編輯器使用VI, Emacs 自動化工具使用automake 和Makefile IDE使用Eclipse, Qt, KDevelop等。
JetBrains、 Intellij IDEA、PyCharm、Geany等
沒有 ,都是標準的GNU工具連,g ld 等等
Vim 7.4 已經能把python當成一種擴充套件語言了
所以說 寫python的時候用Vim應該是不錯的選擇
(如果你想要什麼功能,就可以用python實現)
用Vim的另一個原因是用他的人比較多
有什麼問題的話,很容易解決
與Vim相對的是Emacs。
他用一種lisp的變種(叫做elisp)的語言做擴充套件老轎
他是一種函式式的程式語言,沒有物件的概念
(當然,用某種方式可以模仿面向物件)
用Vim和用Emacs好像和性格有關(我猜的)
比如你在寫python的時候,又想著學學lisp
在懂得了OOP的時候,又想知道點關於FP的事情
那 你應該是Emacs型的人,用Emacs會比較適合
如果你只想很專心的寫Python,而不管Lisp到底是什麼
(有一句話說Python連Lisp的缺點都學過來了)
也不想知道Lisp是什麼的話,那你用Vim很適合
因為Emacs型的人興趣太廣泛了,以至於Vimer總說
Emacs根本就不是一個編輯器!
(你也可以用其他的編輯器。
但,當你學會上面的兩者之一,喊蔽或許你才會明白 什麼叫編輯器)
關於更多Linux的學侍滲肆習,請查閱書籍《linux就該這么學》。
windows上用的IDE很多都有linux版,你可以去找找你常用的windows版IDE有沒linux版