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

京东导购网站开发wordpress淘客模板

京东导购网站开发,wordpress淘客模板,功能类似淘宝的网站建设,seo网站运营文章目录 1. c/cpp程序的执行1.1 cpp程序的编译过程1.2 预处理指令1.3 编译过程的细节2. macOS下使用Clang看cpp程序的编译过程2.1 示例2.1.1 第一步 预处理器-preprocessor2.1.2 第二步 编译器-compiler2.1.3 第三步 汇编器-assembler2.1.4 第四步 链接器-linker2.1.5 链接其他…

文章目录

  • 1. c/cpp程序的执行
    • 1.1 cpp程序的编译过程
    • 1.2 预处理指令
    • 1.3 编译过程的细节
  • 2. macOS下使用Clang看cpp程序的编译过程
    • 2.1 示例
      • 2.1.1 第一步 预处理器-preprocessor
      • 2.1.2 第二步 编译器-compiler
      • 2.1.3 第三步 汇编器-assembler
      • 2.1.4 第四步 链接器-linker
      • 2.1.5 链接其他源文件
    • 2.2 Clang的常见命令语法
      • 2.2.1 常见使用
      • 2.2.2 文档
    • 2.3 GCC, LLVM以及MSVC
  • 3. 使用clang或者gcc执行使用了OpenCV库的程序
    • 3.1 手动链接需要的库
    • 3.2 参数说明
    • 3.2 当前opencv含有的链接库
      • 3.2.1 在clang命令中使用pkg-config --libs opencv来链接库
      • 3.2.2 配置pkg-config --libs opencv

非常建议去看一下B站这个课程:基于VSCode和CMake实现C/C++开发 | Linux篇:
就是讲在不使用Visual Studio这种IDE的情况下,纯靠g++/gcc这样的命令行去逐步执行cpp程序的编译,链接,执行等操作。

另外,也可以看一下这篇文章,都有助于理解用编译器的命令行去执行cpp程序:
MacOS使用clang

1. c/cpp程序的执行

1.1 cpp程序的编译过程

这里复习一下本科的知识,

  1. 编译程序把高级语言写的源程序(source program,比如:.cpp后缀)转换为机器指令的目标程序(object program,比如:.o后缀)
  2. 编译时是以源程序文件(即.c或者.cpp)为对象进行的,分别对每个源程序文件进行编译得到相应的目标程序,再将这些目标程序链接成为一个统一的二进制的可执行程序。
  3. 预处理指令和C++语句分开处理,前者由预处理器(或者也常称为预编译器)对预处理指令(#开头的,比如宏定义和include)进行预处理,详见 1.2 预处理指令
  4. 把预处理得到的结果和程序剩下的部分一起,组成一个完整的,可以用来编译的最终的源程序,编译程序对该源程序正式进行编译,得到目标程序。
  5. 不同的编译系统除了会提供C/CPP规定的标准库函数外,有些编译系统还会提供自己的专门的函数/库函数。

C/CPP的编译过程:

图自:什么是动态链接与静态链接?
在这里插入图片描述

  1. 编译自动包括预编译和正式编译两个阶段,编译得到本源文件的目标文件(Windows下一般是.obj的后缀,UNIX下一般是.o的后缀)。
  2. 再通过链接把所有需要的目标文件链接在一起,就得到了最后的可执行程序(Executive program,Windows下一般是.exe的后缀,UNIX下一般没有后缀)
    • 即便程序只有一个源程序文件(一个X.cpp),编译后得到的目标函数也不能直接运行,也需要经过连接阶段,因为要与库函数链接,才能生成可执行程序。

参考:

  • 【本质】你知道C语言编译的过程吗?
  • C语言程序设计-谭浩强
  • Introduction to C/C++ compilation in Linux os with gcc
  • The C++ Compilation Model

1.2 预处理指令

  • #include<iostream>这句话并不是C++语句,而是C++的一个预处理指令,以#开头与常规的C++语句相区别,行的末尾没有分号。
  • #include<iostream>是个包含指令,将iostream文件的内容包含到该命令所在的程序文件中,代替该指令。
  • 由于这类指令都放在程序开头,因此称为"头文件"(header file)
  • 编译时,先对所有的预处理命令进行处理,将头文件的具体内容替换#include指令,然后再对该程序单元进行整体编译。

1.3 编译过程的细节

这个属于编译原理的内容了,可以看看 Alfred V. Aho,Monica S.Lam的编译原理,这里大概放个图:
在这里插入图片描述
代码的编译过程可以分为预处理,词法分析,语法分析,语义分析,目标代码,链接,生成可执行程序。

2. macOS下使用Clang看cpp程序的编译过程

2.1 示例

如果想看gcc的,可以看 【本质】你知道C语言编译的过程吗?这篇文章。

以下内容,大部分出自:MacOS使用clang

编译用的clang_demo.cpp 源码

#include <iostream>
#define STR "Hello world"int main(int argc, const char * argv[]) {std::string a = STR;std::cout << a << std::endl;return 0;
}

查看编译步骤:
(由于是cpp语言,因此用clang++,就好像gcc命令是c语言,g++就是cpp一样)

> clang++ -ccc-print-phases clang_demo.cpp
0: input, "clang_demo.cpp", c++
1: preprocessor, {0}, c++-cpp-output
2: compiler, {1}, ir
3: backend, {2}, assembler
4: assembler, {3}, object
5: linker, {4}, image
6: bind-arch, "x86_64", {5}, image

可以看到,分为6步:

http://www.yayakq.cn/news/78704/

相关文章:

  • 猎头公司网站建设网站开发视频播放好做吗
  • 自己想做个网站 费用科技小巨人培育企业
  • 哪些ppt网站是免费的公司宣传册设计样本下载
  • 如何做阿语垂直网站苏州建设集团
  • 轻量服务器wordpress优化网址
  • 安庆高端网站建设公司电子请帖免费制作app
  • 徐州企业建站系统本地生活服务平台app
  • 免费制作婚介网站网站建设技术的实现
  • 网站推广应该怎么做如何在抖音上投放广告
  • 工程建设有哪些青岛关键词优化平台
  • 电子商务网站软件建设核心网站建设艾金手指六六12
  • 安徽网新科技怎么建设网站简述企业网站的建设过程
  • 杭州网企业网站建设凡科网做网站如何推广
  • 珠宝网站官网建设需求企业页面
  • 环保部网站官网建设项目审批网站底部备案字体设置
  • 学校登陆网站制作哪些网站可以做设计软件
  • 深圳坂田做网站陶瓷网站源码
  • 江苏省建设厅网站查询施工员证怎么创建网站教程
  • 山东网站建设和游戏开发的公司排名最新的产品代理有哪些
  • 网站运营模式百度云盘登录
  • 长春网站开发公司哪家好义乌网图科技有限公司电话
  • 网上怎么开店卖产品东莞网站优化专家
  • 外贸网站联系方式模板免费个人网站可以做淘宝店铺名
  • 请人做网站多少钱ppt模板下载免费素材网站
  • 带dede后台的整套网站源码 怎么进入dede后台网页布局设计的一般步骤
  • 平顶山市湛河区建设局网站怎么给网站做备案
  • 如何后台修改网站联系人Wordpress主题 修改 价钱
  • 网站 租用服务器企业门户网站建设与发展趋势
  • 外贸网站建设预算wordpress企业主题哥
  • 初学者拟建网站深圳企业网络推广公司