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

微信网站开发语言wordpress特点

微信网站开发语言,wordpress特点,怎样创建自己的网页,个域名的网站建设方案书个人主页 #xff1a; zxctscl 文章封面来自#xff1a;艺术家–贤海林 如有转载请先通知 文章目录 1. 前言2. 初见gcc和g3. 程序的翻译过程3.1 预处理3.1.1 宏替换 去注释 头文件展开3.1.2 条件编译 3.2 编译3.3 汇编3.4 链接 4. 链接4.1 动态链接4.2 静态链接 1. 前言 在之… 个人主页 zxctscl 文章封面来自艺术家–贤海林 如有转载请先通知 文章目录 1. 前言2. 初见gcc和g3. 程序的翻译过程3.1 预处理3.1.1 宏替换 去注释 头文件展开3.1.2 条件编译 3.2 编译3.3 汇编3.4 链接 4. 链接4.1 动态链接4.2 静态链接 1. 前言 在之前已经分享了 【Linux】vim的使用这次来看看在云服务器上的编译器gcc。 2. 初见gcc和g 我们先写一段简单的代码 #includestdio.hint main(){for(int i0;i10;i){printf(hello: %d\n,i);}return 0;} 当我们进行编译的时候 发现根本就编译不了。 这个是因为编译器版本的问题 查看编译器的版本gcc -v 版本不是最新的不支持在for里面定义变量。 如果想要支持那么得加上这个命令 gcc test.c -stdc99此时就编过了。 在用gcc时候有一个选项-o后面接一个名称就是把编译的可执行程序再起一个名字 gcc test.c -o my.exe -stdc99-o也可以放在前面但是-o紧跟的就是修改的文件名 gcc -o you.exe test.c -stdc99在Linux中以.cpp和.cc结尾的都是c代码 写一个简单的C代码 #includeiostreamusing namespace std;int main() {for(int i0;i10;i){couthello linuxiendl;}return 0; } 在这里编译这个C代码 gcc test.cc就直接报错了 所以gcc不能用来编译c代码。 因为gcc是用来编译C语言的所以它不认识c的语法。 所以编译c代码得用g g test.cc如果想让编译c代码时支持更高的特性可以加上-stdc11 g test.cc -stdc11总之 在编译C语言时候可以带上stdc99 在编译C代码时可以带上stdc11. 那么g能不能编译C语言的代码呢 g test.c是可以的。 这个也和我们认知是一样的c兼容c。 所以g既能编译c又能编译C语言。 如果想要编译一个指定名称的c程序怎么写呢 同gcc一样加上-o选项-o后面紧跟着指定的名称 g -o my.exe test.cc当然-o可以放在前面也可以放在后面,和gcc的一样。 g test.cc -o you.exe同样c代码的后缀还有.cpp。 将test.cc先改名为test.cpp mv test.cc test.cpp然后编译test.cpp再指向a.out C代码后缀除了.cc和.cpp之外还有一个.cxx 来直接编译一下 g test.cxx -o my.exe那么将后缀改为.txt能行吗 mv test.cxx test.txt这里是不行的Linux是不关心文件后缀的但是编译器是关系。这里编译器就是把.txt当成文本文件了。 在之后的博客中都统一将C后缀为.cc因为最简单。 想知道自己对应的g是哪个版本的就直接用命令 g --version如果没有g怎么安装呢 可以直接在网上搜索就会出来了 安装命令就是 sudo yum install -y gcc-c能直接将gcc-c的标准库给装上了。 装好了就能直接查看版本 g --version3. 程序的翻译过程 程序的翻译过程预处理 编译 汇编 链接 先写一个简单的代码想看见每个阶段的编译结果 1 #includestdio.h2 #define M 1003 4 int main()5 {6 for(int i0;i10;i)7 {8 printf(hello: %d\n,M:%d,i,M);9 }10 printf(hello gcc\n);11 //printf(hello gcc\n);12 //printf(hello gcc\n);13 //printf(hello gcc\n);14 //printf(hello gcc\n);15 //printf(hello gcc\n);16 //printf(hello gcc\n);17 //printf(hello gcc\n);18 //printf(hello gcc\n);19 //printf(hello gcc\n);20 //printf(hello gcc\n);21 return 0;22 23 }3.1 预处理 预处理要做的是宏替换去注释头文件展开条件编译。 3.1.1 宏替换 去注释 头文件展开 -E 就是从现在开始进行程序的翻译预处理完成就停下。 gcc -E test.c -o test.i进入test.i 保存的就是-E后的结果 将test.c打开对比发现test.i有800多行是怎么来的 是从test.c的头文件 #includestdio.h来的。 用来查看C语言标准的头文件库 ls /usr/include/打开stdio.h发现有很多函数声明 vim /usr/include/stdio.h再打开test.i vim test.i对比一下代码发现宏已经替换了而且注释了的代码也不在。 3.1.2 条件编译 先写一个代码在proj.c中 1 #includestdio.h2 int main()3 {4 #ifdef V15 printf(功能1\n);67 #elif V28 printf(功能1\n);9 printf(功能2\n);10 printf(功能3\n);1112 #else13 printf(功能1\n);14 printf(功能2\n);15 printf(功能3\n);16 printf(功能4\n);17 printf(功能5\n);18 printf(功能6\n);19 #endif2021 return 0;22 } ~ 在编译之后打开proj.i 然后用宏定义将V1 定为1#define V1 1 然后直接编译 gcc proj.c发现结果只剩下功能1了。 就行打开proj.c将#define V1 1 改为#define V2 1 编译运行后 同样将v2改为v3. 这个就叫做条件编译可以根据用户指明的条件实现代码的动态裁剪。 在现实中可以在软件维护一份代码用条件编译的方式来进行代码的裁剪这样就能定制出各种功能的代码。 把宏删除。 用-D加上要宏定义的对象和值再加上宏定义的文件就可以直接对代码进行宏定义更方便对代码进行裁剪 gcc -DV11 proj.c也可以裁剪其他的选项。 3.2 编译 编译将C语言变成汇编语言。 -S从现在开始进行程序的编译编译完成就停下来。 如果想要重新做一遍前面的预处理再到编译那么就用.c文件 gcc -S test.c -o test.s如果想要从预处理阶段直接编译就用.i: gcc -S test.i -o test.s这里发现报错是因为版本的原因 加上它提示的-stdc99就可以了 gcc -S test.i -o test.s -stdc99进入test.s看看 vim test.s发现里面是汇编语言。 3.3 汇编 汇编将汇编语言翻译为二进制目标文件这种二进制是没有办法指向的还差一个链接。 -c从现在开始进行程序的汇编汇编完成就停下来。 gcc -c test.s -o test.o这里的后缀.o就是.obj打开之前用vs写的程序发现同样有。这个文件叫可重定位目标文件不能直接执行形成exe想要用到它。 打开这个test.o文件 vim test.o发现里面形成乱码 发现已经是二进制文件了 file test.o那么能不能直接运行呢 发现是不行的。 那么给它加上可执行的权限 发现还是不能运行 一个文件能不能被指向不止取决于它的权限还要本身就是可执行程序。 得明白二进制目标文件是一个临时文件是不能够执行的。 3.4 链接 链接将二进制目标文件形成可执行程序。 直接 gcc test.o就形成可执行的目标文件了r 当然可以加-o带上形成的程序名 gcc test.o -o my.exe就能直接执行。 为了方便记忆这些选项观察一下可以发现它们连在一起就是-ESc只是E和S要大写。 后缀就是-iso就像镜像文件。 4. 链接 链接是什么呢 链接是我吗程序和库结合的过程。 语言一定有自己的标准库就像c中有c99标准要保证跨平台性。 ldd后面接可执行程序就会显示它的动静态库 ldd my.exe最重要的就是 查看链接到的库 ls /lib64/libc.so.6 -l这里就是c标准库。 我们可以看看这个库的大小 ls /lib64/libc-2.17.so -l一般进行链接时是把程序和这个库链接形成一个可执行的程序。 这个库里面在不是库之前是C语言标准库的源代码像printf和各种方法进行打包形成这个库。这个库的安全性是很高的。 怎么知道库里面有哪些文件 会有一批对应的头文件这个头文件相当于一个方法说明。 所以安装开发环境是安装C标准库和C头文件 库分为动态库和静态库。在Linux里面有同样在windows里面也有。 在在Linux中库的真正的名字是把前缀lib去掉去掉“.”后面的后缀。 所以这个就是c标准库。 因为Linux存在这两种库就决定了在链接时有两种方式动态链接和静态链接。 4.1 动态链接 举个例子就像在学校旁边有个网吧一个学长相当于编译器告诉了小明这个网吧的地址就相当于有了目标库的地址这个地址就是这个过程就是动态链接。 小明在这个网吧就相当于动态库的9号机相当于库里面的一个方法printf当小明在学校里面作业程序执行的代码想要用到电脑去了网吧跳转到库的9号机想要的方法用完之后回学校返回程序这个过程就是一次动态运行的过程。 在网吧被派出所查封以后这个网吧就不能进了。也就是说动态链接依赖动态库一旦动态库缺失所有静态链接这个库的程序都无法执行了。 c动态库是默认提供的 gcc默认形成可执行程序默认采用动态链接。 查看文件类型 file my.exe使用的是动态库链接 动态库和动态链接的优缺点 不能丢失节约资源 重新创建一个文件夹把test.c移动到里面然后执行。 默认采用动态链接 4.2 静态链接 接上个例子小明在买了网吧9号机器库的方法这样每次上网执行程序都能用不需要这个网吧了每次执行程序就拷贝到自己的电脑上这个过程叫静态链接。这个网吧卖电脑就是静态库。 静态链接就是在编译的时候把库中的方法拷贝到自己的可执行程序中。 静态库和静态链接的优缺点 一旦形成与库无关浪费资源 形成静态链接 gcc -o mytest-static test.c -static -发现报错了: 这个是因为在默认情况下一般静态库都是默认没有安装的。 安装命令是 sudo yum install -y glibc-static libstdc-static然后再执行 再ldd看看 ldd mytest-static有问题请指出大家一起进步
http://www.dnsts.com.cn/news/124427.html

相关文章:

  • 腾讯云网站备案流程全国企业信息公示系统查询入口里
  • 村志网站建设网站开发工程师需要什么证书
  • 郑州快速建站模板html界面模板
  • 怎么登陆网站后台管理系统铁道部建设管理司网站
  • 网站保姆-源码下载网上怎么开自己的网店呀
  • 做网站销售说辞ui设计好学吗?要学多久
  • 网站被k查询大数据系统
  • 学网站建设与管理难吗电商推广
  • 哪些行业需要网站有哪些内容淘宝优惠券网站怎么做
  • 福州公司做网站爱前端主图wordpress
  • 设计营销型网站廊坊百度关键词优化
  • 用自己电脑怎么做网站个人网站制作视频
  • 做电影网站看电影算网站流量吗wordpress 置顶图标
  • html5网站基础提高销售的10种方法
  • 做的网站很卡是什么原因建设营销型网站的目的
  • 用自己电脑做网站服务器唐县做网站
  • 暴雪战网官方网站入口霸气又聚财的公司名字大全
  • 网站seo推广高中网站制作
  • 隆化县建设局网站做网站配置
  • 建动画网站需要多少钱怎么进入网站后台图片
  • 那个网站ppt做的比较好吉林省住房和城乡建设部网站
  • 酒店网站建设栏目分析杭州网站建设过程
  • 计算机外包公司有哪些seo教学
  • 公司网站建设规划设计素材网站图案免费
  • 简述如何优化网站的方法梦创义网站建设
  • 温州网站建设优化公司网页设计培训
  • 网站怎么样建设学习网站建设要什么学历
  • 淘宝入驻网站建设百度搜索排名服务
  • 凡科怎么建站教程html网页设计案例
  • asp.net怎样做网站登录php网站 更改logo