2015-02-09 16:43:38 gudongxian 阅读数 3335
  • C语言嵌入式Linux编程(1)--C语言进阶学习路线指南

    C语言到底学到什么程度,才能够进行嵌入式内核、驱动的开发? 嵌入式不仅要求学员掌握C语言的基本语法,还要对 1)计算机基本原理、系统架构 2)编译、链接原理、程序加载运行原理、嵌入式系统硬件 3)C标准、C编译器对C标准的扩展 4)程序的健壮性、安全性、编码风格等 有一个更深的理解和掌握。 《C语言嵌入式Linux编程》专题视频教程,2017年8月会陆续发布,敬请期待!

    4168 人正在学习 去看看 王利涛

市面上常见的Linux都是发行版本,典型的Linux发行版包含了Linux内核、桌面环境和各种常用的必备工具,国内使用较多的是Ubuntu(乌班图)、CentOS、Deepin(深度Linux)。本教程以Deepin为例来讲述如何编译C程序。

Gedit

Gedit是一个简单实用的文本编辑器,拥有漂亮的界面,支持语法高亮,比 Vim 更易上手。本教程将Gedit作为C代码编辑器。

Gedit的安装:
sudo apt-add-repository ppa:ubuntu-on-rails/ppa    //添加ubuntu的软件源
sudo apt-get update    //更新软件列表
sudo apt-get install gedit-gmate    //安装

在当前目录下创建一个C源文件并打开:
touch test.c
gedit test.c

可以看到gedit的窗口,输入:
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. int main()
  4. {
  5. printf("Hello,Linux.\n");
  6. exit(0);
  7. }


gedit 窗口截图

注意:Gedit支持多种语言的高亮显示,一般情况下能够自动识别语言,如果识别错误,请在“编辑->高亮模式“下选择C。

GCC

Linux下使用最广泛的C/C++编译器是GCC,大多数的Linux发行版本都默认安装,不管是开发人员还是初学者,一般都将GCC作为Linux下首选的编译工具。本教程毫不犹豫地使用GCC来编译C程序。

保存文件后退出,打开终端并 cd 到当前目录,输入下面的命令:
    gcc test.c -o test
可以直接将C代码编译链接为可执行文件。

可以看到在当前目录下多出一个文件 test,这就是可执行文件。不像Windows,Linux不以文件后缀来区分可执行文件,Linux下的可执行文件后缀理论上是可以任意更改的。

当然,也可以分步编译:

1) 预处理
    gcc -E test.c -o test.i
在当前目录下会多出一个预处理结果文件 test.i,打开 test.i 可以看到,在 test.c 的基础上把stdio.h和stdlib.h的内容插进去了。

2) 编译为汇编代码
    gcc -S test.i -o test.s
其中-S参数是在编译完成后退出,-o为指定文件名。

3) 汇编为目标文件
    gcc -c test.s -o test.o
.o就是目标文件。目标文件与可执行文件类似,都是机器能够识别的可执行代码,但是由于还没有链接,结构会稍有不同。

3) 链接并生成可执行文件
    gcc test.o -o test

如果有多个源文件,可以这样来编译:
    gcc -c test1.c -o test1.o
    gcc -c test2.c -o test2.o
    gcc test1.o test2.o -o test

注意:如果不指定文件名,GCC会生成名为a.out的文件,.out文件只是为了区分编译后的文件,Linux下并没有标准的可执行文件后缀名,一般可执行文件都没有后缀名。

编译后生成的test文件就是程序了,运行它:
    ./test
如果没有运行权限,可以使用sudo命令来增加权限(注意要在Linux的分区下):
    sudo cdmod test 777

对于程序的检错,我们可以用-pedantic、-Wall、-Werror选项:
  • -pedantic选项能够帮助程序员发现一些不符合 ANSI/ISO C标准的代码(并不是全部);
  • -Wall可以让gcc显示警告信息;
  • -Werror可以让gcc在编译中遇到错误时停止继续。

这3个选项都是非常有用的。

2018-11-09 04:33:46 hhduyc 阅读数 818
  • C语言嵌入式Linux编程(1)--C语言进阶学习路线指南

    C语言到底学到什么程度,才能够进行嵌入式内核、驱动的开发? 嵌入式不仅要求学员掌握C语言的基本语法,还要对 1)计算机基本原理、系统架构 2)编译、链接原理、程序加载运行原理、嵌入式系统硬件 3)C标准、C编译器对C标准的扩展 4)程序的健壮性、安全性、编码风格等 有一个更深的理解和掌握。 《C语言嵌入式Linux编程》专题视频教程,2017年8月会陆续发布,敬请期待!

    4168 人正在学习 去看看 王利涛

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                Linux   中最重要的软件开发工具是   GCC。GCC   是   GNU   的   C   和   C++   编译器。实际上,GCC   能够编译三种:C、C++   和   Object   C(C   语言的一种面向对象扩展)。利用   gcc   命令可同时编译并连接   C   和   C++   源程序。   
    
  #DEMO#:   hello.c   
    
  如果你有两个或少数几个   C   源,也可以方便地利用   GCC   编译、连接并生成可执行文件。例如,假设你有两个源文件   main.c   和   factorial.c   两个源文件,现在要编译生成一个计算阶乘的程序。   
    
  -----------------------   
  清单   factorial.c   
  -----------------------   
  #include   <stdio.h>   
  #include   <stdlib.h>   
    
  int   factorial   (int   n)   
  {   
          if   (n   <=   1)   
                  return   1;   
    
          else   
                  return   factorial   (n   -   1)   *   n;   
  }   
  -----------------------   
    
  -----------------------   
  清单     main.c   
  -----------------------   
  #include   <stdio.h>   
  #include   <stdlib.h>   
    
  int   factorial   (int   n);   
    
  int   main   (int   argc,   char   **argv)   
  {   
          int   n;   
    
          if   (argc   <   2)   {   
                  printf   ("Usage:   %s   n\n",   argv   [0]);   
                  return   -1;   
          }   
          else   {   
                  n   =   atoi   (argv[1]);             

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述
2018-02-21 21:16:42 qq_31125955 阅读数 46599
  • C语言嵌入式Linux编程(1)--C语言进阶学习路线指南

    C语言到底学到什么程度,才能够进行嵌入式内核、驱动的开发? 嵌入式不仅要求学员掌握C语言的基本语法,还要对 1)计算机基本原理、系统架构 2)编译、链接原理、程序加载运行原理、嵌入式系统硬件 3)C标准、C编译器对C标准的扩展 4)程序的健壮性、安全性、编码风格等 有一个更深的理解和掌握。 《C语言嵌入式Linux编程》专题视频教程,2017年8月会陆续发布,敬请期待!

    4168 人正在学习 去看看 王利涛

       最初学习C语言用的是Visual C++6.0,后来还用过一些IDE,复制粘贴都可以用鼠标对目标进行选择即可。但在Linux系统里,需要熟练掌握在Terminal里编写C语言程序,进行编译调试。本章主要介绍在Linux的终端下编写C程序并编译运行。

一,编写C时需要掌握的一些Linux操作

(1)文件管理相关的命令

Linux命令名称作用使用举例
mkdir新建文件夹

mkdir test,mkdir -p test1/test2/test3

cd更改当前的工作目录cd test
ls列出文件夹下包含的文件信息ls,ls -R,ls -a,ls-l
pwd查看当前工作目录pwd,pwd -P
cp
拷贝文件cp test1.c test2.c,cp test1.c ../test2
rm删除文件或文件夹rm test1.c,rm -r test
mv移动文件mv test1.c ./test2
cat查看文件内容cat test.c,cat -b test.c,cat -s test.c

touch

创建文件或更新文件时间touch test.c,touch test.c test.c

(2)使用Linux的vi编辑器

1)Linux下的vi编辑器分为三种模式,分别为一般模式、插入模式、底行指令模式,进入三种模式的方法分别如下:

一般模式(刚进入的模式)进入vi时的模式,当前为插入模式下按ESC键可到一般模式
插入模式(或称为编辑模式)按下A,a,I,i,O,o进入(有所区别,按照效率选择)
底行指令模式:,/,?(用的:和 / 较多)

插入模式用来编辑代码内容,一般模式用来复制、粘贴、删除等操作,底行命令模式主要用来保存文件、退出、查找文本内容等。

2)vi编辑器的一些操作指令

一般模式下底行指令模式下

        [N]dd:剪切行内容。

        [N]yy:复制行内容。

        [N]x:剪切从光标处开始的N个字符。

        pP:粘贴当前行内容,小写p是向下粘贴,大写P是向上粘贴。

        u:撤销上一步的操作。

[N]表示光标处向下N行的内容,例如5yy表示复制包括光标所在行向下5行的内容)

         hjkl分别表示向左,向下,向上,向右。

        1GG分别指光标移动到首行和最末尾行。

y0,y$分别表示复制光标到行首部分的内容和光标到行尾部分的内容。

d0d$分别表示剪切同上方式。

        :w 保存内容。

        :q! 强制退出。

        :q 退出未修改的文件。

        :x保存并退出(也可以用:wq)。

        :w 文件名 另存为文件名的文件。

        :r 文件名  读入文件内容插入到当前光标位置。

        :N 光标移动到第N行。

        :set nu显示行号。        :set nonu不显示行号。

        /string 查找字符串(通过n或者N分别向下或反向查找)。

        :s/string1/string2 将字符串string1替换为string2。

(注:可以是“:起始行,结束行 :s/string1/string2 ”来将某一范围内的字符串替换,在末尾如果加/g表示所有找到的字符都替换。)

        :!+Linux命令 可执行Linux命令,执行后可再次回到编辑界面。

对于复制和粘贴也可通过“起始行,结束行”+y(或者d)的方式对某一部分块进行复制(剪切)


二、使用vi编辑器编写C程序

(1)打开Terminal(终端),建立相关目录,在该目录下执行“vi test.c”,将新建一个名为test.c的文件并进入(此时未保存,保存后该文件才存在)。

(2)使用前文提到的命令编写C程序,保存并退出。


(3)使用  gcc test.c -o test    ./test 编译生成文件并运行。



小技巧:

(1)打开Terminal可以快捷方式Ctrl+Alt+T,或者使用Search搜索Terminal。

(2)输入时可以使用Tab键补充文件名。

(3)gcc后面可加 -Wall,提示错误信息。

2019-04-15 12:57:44 weixin_44895651 阅读数 4174
  • C语言嵌入式Linux编程(1)--C语言进阶学习路线指南

    C语言到底学到什么程度,才能够进行嵌入式内核、驱动的开发? 嵌入式不仅要求学员掌握C语言的基本语法,还要对 1)计算机基本原理、系统架构 2)编译、链接原理、程序加载运行原理、嵌入式系统硬件 3)C标准、C编译器对C标准的扩展 4)程序的健壮性、安全性、编码风格等 有一个更深的理解和掌握。 《C语言嵌入式Linux编程》专题视频教程,2017年8月会陆续发布,敬请期待!

    4168 人正在学习 去看看 王利涛

linux环境下编译并运行C语言程序

打开安装好的Linux系统(ubuntu18.04)

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界面如下:
在这里插入图片描述(gcc经常简写为cc)当然在安装所有软件前最好使用命令将软将更新一下
3.创建文件夹并进入该文件
创建文件夹前可以使用 指令ls 来查看该系统中有哪些文件。然后使用mkdir+文件名创建文件,并且查看该文件是否被创建。(假如创建了一个名字为workspace的文件mkdir workspace)进入该文件则使用命令 cd workspace.然后就进入该目录。然后再创建一个文件名为les1 的文件(mkdir les1)。进入les1文件(cd les1)。创建一个.c文件:touch a.c
4.编辑该文件
输入vi a.c 进入该界面
会发现用户不能从键盘输入信息,这时我们需要从键盘按一个i在下面会显示INSERT(表示插入)。
在这里插入图片描述然后就可以使用键盘输入代码。输入完成以后可以按Esc退出插入操作。再同时按shift和冒号,从键盘输入wq(表示保存并退出)。

在这里插入图片描述
5.编译该文件
输入指令:cc a.c(cc 是gcc 的缩写)
若没有报错则从键盘输入ls查看是否生成了可以执行的文件a.out文件。
会发现生成a.out文件
6.查看该文件的权限(可有可无)
使用指令ls -l
r 表示可读 w表示写 x表示执行在这里插入图片描述

7.执行该文件
使用指令 ./a.out 执行该程序。输出hello world !
在这里插入图片描述

linux 下运行C程序

阅读数 1723

Linux下运行c++程序

阅读数 3216

linux上运行c程序

阅读数 121

没有更多推荐了,返回首页