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版