在Linux开发环境下,GCC是进行C程序开发不可缺少的编译工具。GCC是GNU C Compile的缩写,是GNU/Linux系统下的标准C编译器。虽然GCC没有集成的开发环境,但堪称是目前效率很高的C/C++编译器。《linux就该这么学》非常值得您一看。Linux平台下C程序开发步骤如下:
1.利用编辑器把程序的源代码编写到一个文本文件中。
比如编辑testc程序内容如下:
/这是一个测试程序/
#include<stdioh>
int main(void)
{
printf("Hello Linux!");
}
2.用C编译器GCC编译连接,生成可执行文件。
$gcc testc
编译完成后,GCC会创建一个名为aout的文件。如果想要指定输出文件,可以使用选项-o,命令如下所示:
$gcc-o test1 testc
这时可执行文件名就变为test1,而不是aout。
3.用C调试器调试程序。
4.运行该可执行文件。 在此例中运行的文件是:
$/aout 或者 test1
结果将得出:
Hello Linux!
除了编译器外,Linux还提供了调试工具GDB和程序自动维护工具Make等支持C语言编程的辅助工具。如果想要了解GCC的所有使用说明,使用以下命令:
$man gcc
打开安装好的Linux系统(ubuntu1804)
1安装编辑器
使用语句:sudo apt-get install vim安装vim,可以在安装前查看是否安装vim编辑器。(特别提示:在安装vim前最好将软件更新,使用指令sudo apt-get update)之所以要加sudo的原因是这些安装和更新软件的时候需要使用管理员权限才可以进行。
2安装gcc编译器
和安装vim类似使用sudo apt-get install gcc,安装完成后可以使用cc-v来查看编译器版本信息等。cc -v界面如下:
3创建文件夹并进入该文件
创建文件夹前可以使用 指令ls 来查看该系统中有哪些文件。然后使用mkdir+文件夹名创建文件,并且查看该文件夹是否被创建。(假如创建了一个名字为workspace的文件mkdir workspace)进入该文件则使用命令 cd workspace然后就进入该目录。然后再创建一个文件名为les1 的文件(mkdir les1)。进入les1文件(cd les1)。创建一个c文件:touch ac。
4编辑该文件
输入vi ac 进入该界面
会发现用户不能从键盘输入信息,这时我们需要从键盘按一个i在下面会显示INSERT(表示插入)。
然后就可以使用键盘输入代码。输入完成以后可以按Esc退出插入 *** 作。再同时按shift和冒号,从键盘输入wq(表示保存并退出)。
5编译该文件
输入指令:cc ac(cc 是gcc 的缩写)
若没有报错则从键盘输入ls查看是否生成了可以执行的文件aout文件。
会发现生成aout文件
6执行该文件
使用指令 /aout 执行该程序。输出hello world !
一个用户队列;
一个空闲窗口队列;
一个在工作窗口链表;
一个调度线程;
一个在使用窗口轮询线程
调度线程轮询空闲窗口队列,如果有空闲窗口,则向用户队列请求一个用户,使用户和窗口关联,同时将窗口置入工作窗口队列;
在使用窗口轮询线程,定期轮询链表,如果工作已经完成,则将窗口归还空闲队列;
大概就这样吧,细节问题,你还得自己去实现。
我就是做LINUX下的C开发的。
准确的说,LINUX下C才是主要的开发语言,但是写应用程序还是要用面向对象的,尤其是图形界面的,不如QT和X和GTK等等。下面说的必须要求你C语言学的很好而且会使用LINUX的情况下。LINUX常用命令要熟悉。
要学LINUX下的C编程,先看一两本LINUX下C的书比较好,这个你自己选择,但是经典的书还是好一些,比如《LINUX程序设计》、《UNIX环境高级编程》,看这些的时候把书上的例子选择一些自己编译一下,哪怕是照着敲进去,事半功倍。
看完一本这样的书,你对LINUX系统编程的知识就足够了,这时候你可以开始阅读一些LINUX下的源代码来锻炼和提升能力了,LINUX下有很多开源的软件,你可以搜一下,应用程序也很多,但是最好的源代码还是LINUX内核。
推荐一本简单的内核书《linux内核完全剖析012》,这个讲的是012内核,代码量只有1万多行的内核,现在的26估计一千万,一辈子看不完。这个书讲了很多X86体系结构的知识,这时理解内核必备的,汇编你要能看懂。
能看懂内核代码了,就说明你至少不是初学者了,现在肯定能开发项目了,有了经验后,恭喜你,你就成为一名LINUX程序员了。
再由这些基础后,你就可以选择一些具体的开放方向了,比如底层一点,驱动,协议等、或者嵌入式应用等、或者是QT等。不过这就是后话了,呵呵
我自己的一些体会,希望能对你有用。
楼上的意思是,你拥有源码,自行编译生成了汇编文件,你当然可以查看汇编代码;
但是如果你得到的是一份二进制的文件,obj、或者其他的executable file,你没有其源码,这个时候你想分析其文件信息以及汇编源码,只有通过上述命令了 。。。这个有点像Windows下面的逆向工程(Linux下多开源,因此win下面逆向工程较多也较有意义)。
举几个例子:
objdump -x obj 以某种分类信息的形式把目标文档的数据组织(被分为几大块)输出
objdump -t obj 输出目标文档的符号表
objdump -h obj 输出目标文档的section概括
-----------------------------------------------------------------------
你应该man一下objdump的,你就知道它具体用途了。
windows下面类似的工具有微软VS中自带的dumpbinexe
dumpbin xxexe /exports >exportstxt
《Linux高级程序设计》电子书网盘下载免费在线阅读
链接:>提取码:1234
书名:Linux高级程序设计
豆瓣评分:70
出版年份:2009-10
页数:432
内容简介:
《Linux高级程序设计(第2版)》以Linux *** 作系统(内核为26版本)为开发平台、GCC 40/GDB 63为开发调试环境,详细介绍了Linux系统下编程环境及编程工具、文件管理(文件类型、ANSI以及POSIX标准下文件读写 *** 作)、进程管理(创建、退出、执行、等待、属性控制)、进程间通信(管道、消息队列、共享内存)、进程间同步机制(信号量)、进程间异步机制(信号)、线程管理(创建、退出、取消等以及属性控制)、线程间同步(互斥锁、读写锁、条件变量)以及网络基本编程、高级应用等内容。
《Linux高级程序设计(第2版)》内容丰富、紧扣应用,适合从事Linux下C应用编程的人员阅读,也适合从事嵌入式Linux开发的人员阅读。
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
帮忙看下这两句话实现什么功能。谢谢!
for(i=0x00;i<0xff;i++)
outb(i,0x378);
解析:
0x378是并口的数据寄存器地址,outb(i,0x378);
的作用是向地址为0x378的端口输出数据i。
以上就是关于在Linux下如何开发C程序全部的内容,包括:在Linux下如何开发C程序、如何在linux环境下编辑一个c语言源程序并将其编译为可执行文件、Linux下C语言等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)