当前位置: 首页 > news >正文

Linux C编程之一:Linux下c语言的开发环境

—恢复内容开始—

今天开始根据Linux C编程相关视频的学习所做的笔记,希望能一直坚持下去。。。

1、开发环境的构成

编辑器:VI;

编译器:选择GNU C/C++编译器gcc;

调试器:应用广泛的gdb;

函数库:glibc ;

系统头文件:glibc_header;

2、在安装Linux时需要注意事项

在安装时选上“程序开发”中的“开发工具”,就可以自动安装gcc/gdb;

若想开发图形界面,还需要选上GNOME/KDE软件开发。

3、IDE(集成开发环境:集编辑、编译、调试等功能于一身的工具)

Kylix:号称Linux下的dephi;

Kdevelop

RHIDE:类似与Turbo C++

4、编译器:gcc(GNU CCompiler)

是GNU推出的多平台编译器,以下是gcc支持编译的一些源文件的后缀及其解释

.c后缀 c语言源代码文件

.h后缀 是程序所包含的头文件

.o后缀 是编译后的目标文件

1
2
3
4
5
6
7
8
例:gcc -o hello hello.c

注:1、gcc编译我们的源程序;

2、-o选项要求编译器给我们输出的可执行文件名为hello;

3、hello.c是我们的源程序文件;
    4、执行./hello 就可以看到程序的输出结果
  查看gcc版本号:

1
gcc -version
5、函数库:glibc

glibc是提供系统条用和调用函数的C库,如open,malloc,printf等

查看glibc的版本:

1
ls /lib/libc-*
6、系统头文件:glibc_header

缺少了系统头文件的话,很多用到系统功能的c程序将无法编译。

假如用户在安装过程中少装了这些包,就无法编译c源程序,这时候可以通过rpm包来迅速安装Linux的C开发语言环境的。

7、Linux下C程序开发过程:

(1)使用vi工具编辑写源程序;

(2)保存为*.c;

(3)使用gcc编译成二进制可执行文件;

(4)./a.out执行(当gcc没有用-o选项指定可执行文件名时);

(5)有问题可以使用gdb进行调试;

8、第一个程序:Hello.c

1
2
3
4
5
int main(int args,char **argv)
{
printf(“Hello Linux\n”);
return 0;
}
9、c程序组成

对于一个c程序,安装完成后可以分成三个部分:

可执行文件;包含文件;库文件

比如用rpm安装的MySQL数据库:

(1)可执行文件放在/usr/bin下;

(2)包含文件放在/usr/include/mysql下;

(3)库文件在/usr/lib/mysql下;
      VMware tools是虚拟机VMware Workstation自带的一款工具。它的作用就是使用户可以从物理主机直接往虚拟机里面拖文件。如果不安装它,我们是无法进行虚拟机和物理机之间的文件传输的。下面将介绍该怎么全安装。

不论你用的是windows还是linux,在传输文件的时候,能做到向windows那样直接拖动,就方便多了。
1
打开终端:

图形界面:一般右键菜单中有,如果没有,在应用程序>附件>终端可以打开;
命令行:命令行可以说直接就是在终端运行的,无需打开;
然后用root用户登录;

安装vmware-tools

我安装过了,在虚拟机>安装vmare tolls选项,然后会弹出一个对话框,里面有这个压缩文件:VMwareTools-10.0.5-3228253.tar.gz

将该文件,复制到/tmp文件下:

在tmp目录下:

先解压拷贝过去的文件:tar zxf VMwareTools-10.0.5-3228253.tar.gz

然后,进入解压的文件夹/tmp/vmware-tools-distrib下:cd /tmp/vmware-tools-distrib

运行./vmware-install.pl

装好了之后,最后,重启一下

2010-10-29 11:40:23 +0800
–>
Collection
concat
将另外一个对象或者数组拼接到已有的对象或者数组之后;
基本思路如下:
1)使用JQ的.getJSON()读取JSON文件,将读取的数据使用 .getJSON() 读取JSON文件,将读取的数据使用.getJSON()读取JSON文件,将读取的数据使用.each() 进行循环遍历,同时在循环体中在 里面插入option 值为当前遍历的值。

2)市级随省级变化而变化,我的做法是,重新再读取一次JSON文件,使用onchange()来监测 选项的变化。

3)通过KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲province option….(each) 循环遍历中进行匹配,如果匹配成功,则取出JSON数据中的“城市”对象,再进行一遍$.(each) 遍历,同时组装html代码块(或者直接使用append()进行插入,但这样的话就必须在函数的开始就清空对应的html内容)。

4)使用.html() 将上面组装好的html代码块插入到html文档中。


我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2lv77fgyvl8gc

转载于:https://blog.51cto.com/wqwq800123/2324936

相关文章:

  • 写给高年级小学生看的《Bash 指南》
  • Windows10下 tensorflow-gpu 配置
  • 前端模板技术面面观(2)
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 操作系统-进程控制
  • 区块链在刚刚领域引起行业革新
  • pages bookmarks for machine learning domain
  • 2019年值得关注的八大DevOps趋势
  • JS 日期转换,格式化等常用的函数定义
  • AlphaZero进化论:从零开始,制霸所有棋类游戏
  • 一个程序员的自白(危机可导)
  • golang 学习笔记 ---数组/字符串/切片
  • 整数规划---割平面解法
  • 试水Proxmox最新版本PVE 5.3
  • javascript事件循环(浏览器/node)
  • 分享的文章《人生如棋》
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 【React系列】如何构建React应用程序
  • 11111111
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • learning koa2.x
  • opencv python Meanshift 和 Camshift
  • php ci框架整合银盛支付
  • PHP的Ev教程三(Periodic watcher)
  • Promise初体验
  • python 装饰器(一)
  • React16时代,该用什么姿势写 React ?
  • Spark RDD学习: aggregate函数
  • Webpack 4 学习01(基础配置)
  • 分布式任务队列Celery
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 聚类分析——Kmeans
  • 深度学习中的信息论知识详解
  • 我建了一个叫Hello World的项目
  • 译有关态射的一切
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • UI设计初学者应该如何入门?
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #单片机(TB6600驱动42步进电机)
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • $(function(){})与(function($){....})(jQuery)的区别
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (C#)一个最简单的链表类
  • (WSI分类)WSI分类文献小综述 2024
  • (分布式缓存)Redis分片集群
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (一)Java算法:二分查找
  • (原)Matlab的svmtrain和svmclassify
  • *1 计算机基础和操作系统基础及几大协议
  • .net core开源商城系统源码,支持可视化布局小程序
  • .net web项目 调用webService
  • .net的socket示例
  • .net专家(高海东的专栏)