如何把源代码转换成LINUX程序,请详细些嘛

如何把源代码转换成LINUX程序,请详细些嘛,第1张

如果是你自己写的程序,就需要编写一个makefile的文件,把相关的依赖关系和文件位置,还有文件 *** 作给包含进去,具体怎么写可以看看linux程序设计一书,讲的毕竟清楚

如果是你下载的源码程序包,那么就如楼上那兄弟说的 *** 作基本上可以,但是有些软件/configure的时候需要添加一些文件信息,各有不同,还是建议按着软件包名称网上搜索下相关方案,或者看源文件目录下的Readme文档,一般有说明

Linux程序员经常抱怨,自从他们使用了免费开源的系统平台后,作为一名程序员,却并没有在代码编辑器上得到足够的重视。他们往往会认为Linux平台上的代码编辑器太少了,以至于影响他们的编程工作。但是事实并非如此,在Linux平台上有太多的代码编辑器供你使用了,下面我们分享了7个最受Linux程序员欢迎的代码编辑器,继续在编程的路上前行吧!

1、Eclipse

Eclipse是一款很酷的开源代码编辑器,同时它也是最受程序员亲睐的代码编辑器之一,它拥有代码高亮和智能提示等强大的功能。在Eclipse中,你可以完全胜任以下编程语言的工作——Python, R, Ruby, JavaScript, Natural, Lasso, C, C++, COBOL, Scheme, Clojure, Groovy等等,它也是非常著名的Java集成开发环境,甚至提供了对Java 8的支持。在一些Web开发IDE特性的帮助下,你可以非常方便地对代码文件进行组织和访问

2、Light Table

Light Table将会是一款彻底改变Linux编辑器概念的代码编辑器,它提供了直观和易用的编程界面。并且Light Table可以很方便地进行定制功能,因为它也是开源的。它有一个强大的插件管理器,这样你就不用在网上漫无目的的寻找需要的插件了。

3、Sublime Text 3

这是一款绝对值得一提的Linux代码编辑器,因为它有简单而且超酷的功能特性。Sublime Text 3最独特的地方就是它没有独特的功能,它仅仅是一个简单的代码编辑器,有了它,你就可以非常方便地对多行代码进行修改了。利用Sublime Text 3你可以做 *** 作文件、重命名变量、分离编辑和其他有趣的 *** 作。

4、Brackets

Brackets也是一款为Linux开发者设计的开源代码编辑器,使用Brackets写代码,你不会被任何事情所打断。比如在写HTML代码时,即便你没有保存代码也可以及时预览你的Web页面效果。你也可以使用Theseus来检查变量,Brackets默认提供一种主题,当然你也可以在扩展中心获取更多的主题。

5、Dart Editor

Dart Editor是Google开发设计的,旨在帮助开发者制作光亮而惊叹的Web应用。Dart Editor支持多种开发语言,同时也集成了Dartium。通过它的静态分析引擎,你可以创建,维护,调试和开发自己的Web应用。函数、类、方法等都能以树的结构列出来,方便你编写代码。

6、Vim

Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。

7、Emacs

Emacs不仅仅是一个编辑器,他是一个整合环境,或可称它为集成开发环境,这些功能如让使用者置身于全功能的 *** 作系统中。Emacs不仅可以作为文本编辑器,还可以用来收发电子邮件、通过FTP/TRAMP编辑远程档案、通过Telnet登录主机、上新闻组、登陆IRC和朋友交流、查看日历等功能。

在阅读源码之前,还应知道Linux内核源码的整体分布情况。现代的 *** 作系统一般由进程管理、内存管理、文件系统、驱动程序和网络等组成。Linux内核源码的各个目录大致与此相对应,其组成如下(假设相对于Linux-2423目录):

1arch目录包括了所有和体系结构相关的核心代码。它下面的每一个子目录都代表一种Linux支持的体系结构,例如i386就是Intel CPU及与之相兼容体系结构的子目录。PC机一般都基于此目录。

2include目录包括编译核心所需要的大部分头文件,例如与平台无关的头文件在include/linux子目录下。

3init目录包含核心的初始化代码(不是系统的引导代码),有mainc和Versionc两个文件。这是研究核心如何工作的好起点。

4mm目录包含了所有的内存管理代码。与具体硬件体系结构相关的内存管理代码位于arch//mm目录下。

5drivers目录中是系统中所有的设备驱动程序。它又进一步划分成几类设备驱动,每一种有对应的子目录,如声卡的驱动对应于drivers/sound。

6ipc目录包含了核心进程间的通信代码。

7modules目录存放了已建好的、可动态加载的模块。

8fs目录存放Linux支持的文件系统代码。不同的文件系统有不同的子目录对应,如ext3文件系统对应的就是ext3子目录。

Kernel内核管理的核心代码放在这里。同时与处理器结构相关代码都放在arch//kernel目录下。

9net目录里是核心的网络部分代码,其每个子目录对应于网络的一个方面。

10lib目录包含了核心的库代码,不过与处理器结构相关的库代码被放在arch//lib/目录下。

11scripts目录包含用于配置核心的脚本文件。

12documentation目录下是一些文档,是对每个目录作用的具体说明。

一般在每个目录下都有一个depend文件和一个Makefile文件。这两个文件都是编译时使用的辅助文件。仔细阅读这两个文件对弄清各个文件之间的联系和依托关系很有帮助。另外有的目录下还有Readme文件,它是对该目录下文件的一些说明,同样有利于对内核源码的理解。

在阅读方法或顺序上,有纵向与横向之分。所谓纵向就是顺着程序的执行顺序逐步进行;所谓横向,就是按模块进行。它们经常结合在一起进行。对于Linux启动的代码可顺着Linux的启动顺序一步步来阅读;对于像内存管理部分,可以单独拿出来进行阅读分析。实际上这是一个反复的过程,不可能读一遍就理解。

1《Linux内核设计与实现》

本书重在原理。适合入门的最佳图书。作者是为26内核加入了抢占的人,对调度部分非常精通,而调度是整个系统的核心,因此本书是很权威的。

2《深入理解Linux内核》

此书比上一本多了些细节。是Linux内核黑客在推荐图书时的首选。写的比较简单易懂,适合刚刚接触LINUX内核的。

此书图表很多,形象地给出了关键数据结构的定义,与《Linux内核源代码情景分析》相比,本书内容紧凑,不会一个问题讲解动辄上百页,有提纲挈领的功用,但是深度上要逊于《Linux内核源代码情景分析》。

3《LINUX设备驱动程序(第3版)》

这书强调动手实践!但它是讲解“设备驱动”的,不是最核心的东西,而且有些东西没硬件的话无法实践,可能更适合驱动开发的程序员吧

其中关于同步与互斥、内存分配的部分,感觉很不错。

4《Linux内核源代码情景分析》

好,很经典,是浙大教授毛德 *** 写的,可惜成书于2001年之后一直没有更新。分上下册。

很多是基于24内核讲解的需要注意。如果学习的话也建议学习26,26跟24比发生了很多显著改善,应该学习的。

全书内容博大精深,不是非常好懂,对细节问题描述比较清晰。但是感觉对内核的整体感觉不够强。另外缺少网络部分的分析。觉得不是很适合初学者。

5《Linux内核源代码分析》

点评:面对中高级,这本书很好,对了解 *** 作系统是一本不可多得的好书。

6 《LINUXKERNEL技术手册》

参考手册,很薄,值得一看。

7《深入Linux内核架构》

这本书针对的是比较新的内核版本2624;内容比较全面,深入浅出。

如果没有对Linux内核的初步结构的认识,那么会看得比较吃力。建议可以一边去翻在国内已经闻名已经久的四本Linux内核著作(《Linux内核原代码情景分析》、《Linux内核设计与实现》、《深入理解Linux内核》、《Linux设备驱动程序》),再一边看这本书,把这本书当作一个补充或者当作一个内核框架图谱说明书来阅读,收效会更好。

8《Linux内核完全注释》

主要描述和注释了Linux011内核全部源代码。对于初学Linux内核 *** 作系统的人来讲,该书能够引领读者快速入门,并且能全面了解一个简单 *** 作系统的工作机理。对于进一步学习现在的Linux内核具有非常大的指导作用。对于学习嵌入式应用的技术人员来讲,通过《完全注释》一书的学习也能迅速融入嵌入式应用领域。

9《Orange S:一个 *** 作系统的实现》

从只有二十行的引导扇区代码出发,一步一步地向读者呈现一个 *** 作系统框架的完成过程。

仔细看里面的源代码,应该有一些文件里有连接到lib文件的,这是QT的动态库文件把QT库编译成linux下的lib,然后编译的时候,把lib文件放在同一文件夹,并且编译命令加上-l lib或者放到根目录下的lib目录下也可以。这样试一下。o文件还需要经过连接才能生成可执行的文件。

这个是驱动相关程序吧,看起来挺规范的样子。从函数字面看是realtek公司什么网卡或声卡的驱动程序相应的用于初始化的 程序

要看懂驱动,首先得找芯片手册,了解相关底层运行原理,当然要了解Linux编程环境。

然后,再看实现代码(驱动程序),比较复杂的,最好用一个软件分析代码,比如Source Insight,自动为你显示有用的上下文信息(这个好像只有windows版本,Linux下有相关软件,我不记得了)。

我知道的也就这么多,希望对你有用!

在Linux系统 *** 作中,因为某些原因而想要直接从源码创建安装的软件包,下面就如何在Linux系统下从源码创建RPM或DEB包,以便将来可以更容易的卸载程序。

如果已经从它的源码运行“make install”安装了linux程序。想完整移除它将变得真的很麻烦,除非程序的开发者在Makefile里提供了uninstall的目标设置。否则必须在安装前后比较系统里文件的完整列表,然后手工移除所有在安装过程中加入的文件。

这时候Checkinstall就可以派上使用。Checkinstall会跟踪install命令行所创建或修改的所有文件的路径(例如:“make install”、“make install_modules”等)并建立一个标准的二进制包,让能用发行版的标准包管理系统安装或卸载它,(例如Red Hat的yum或者Debian的apt-get命令)。已知它在 Slackware、SuSe、Mandrake 和 Gentoo 上也工作很好,请参考其官方文档。

在这只集中在红帽子和Debian为基础的发行版,并展示怎样从源码使用Checkinstall创建一个RPM和DEB软件包

在linux上安装Checkinstall

在Debian及其衍生发行版上安装Checkinstall:

# aptitude install checkinstall

在红帽子的发行版上安装Checkinstall,你需要下载一个已经打包好的Checkinstall rpm包(例如:从 >

# wget

ftp://ftppbonenet/mirror/ftp5gwdgde/pub/opensuse/repositories/home:/ikoinoba/CentOS_CentOS-6/x86_64/checkinstall-162-3el61x86_64rpm# yum install checkinstall-162-3el61x86_64rpm

一旦checkinstall安装好,你就可以用下列格式创建一个特定的软件包

# checkinstall 《install-command》

如果没有参数,默认安装命令“make install”将被使用

用Checkinstall创建一个RPM或DEB包

在这个例子里,我们将创建一个htop包,这是一个linux交互式文本模式进程查看器(类似 top)。

首先,让我们从项目的官方网站下载源代码,作为一个好的习惯,我们存储源码包到/usr/local/src下,并解压它。

# cd /usr/local/src# wget >

让我们看看htop的安装命令是什么,以便我们能用Checkinstall命令调用它,如下面所示,htop用“make install”命令安装。

# 。/configure# make install

因此,要创建一个htop安装包,我们可以不带任何参数的调用checkinstall,这将使用“make install”命令创建一个包。在这个过程中, checkinstall命令会问你几个问题。

简而言之,如下命令会创建一个htop包:

# 。/configure# checkinstall

“Should I create a default set of package docs?(我会创建一个默认设置的包文件?)”,回答“Y”:

此可以输入一个包的简短描述,然后按两次回车:

输入一个数字以修改下面的任何值或ENTER继续:

然后checkinstall将自动地创建一个rpm或者deb包,根据你的linux系统是什么:

在CentOS7:

在Debian 7:

 

上面就来Linux系统下使用checkinstall从源码创建RPM或DEB包的方法。

exe文件是针对加了壳的文件而言的,并不是所有的exe文件都加壳了的 壳有点像马甲的意思,脱了壳之后还是exe文件,还是看不到源代码的 反编译是对的,以前有极少数语言编的软件可以反编译出来,但是效果也不是很理想,目前流行的语言基本都不可能反编译出来的 用下面的方法试下: 1、侦测壳、脱壳 2、反编译!

以上就是关于如何把源代码转换成LINUX程序,请详细些嘛全部的内容,包括:如何把源代码转换成LINUX程序,请详细些嘛、linux有什么源代码编辑器、怎样读Linux内核源代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9391333.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存