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

著名的设计企业网站邢台做网站公司

著名的设计企业网站,邢台做网站公司,优化20条措施,网站建设模板后台文章目录 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 第一步 预处理器-preprocessor2.1.2 第二步 编译器-compiler2.1.3 第三步 汇编器-assembler2.1.4 第四步 链接器-linker2.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程序的编译过程 这里复习一下本科的知识, 编译程序把高级语言写的源程序(source program,比如:.cpp后缀)转换为机器指令的目标程序(object program,比如:.o后缀)编译时是以源程序文件(即.c或者.cpp)为对象进行的,分别对每个源程序文件进行编译得到相应的目标程序,再将这些目标程序链接成为一个统一的二进制的可执行程序。预处理指令和C++语句分开处理,前者由预处理器(或者也常称为预编译器)对预处理指令(#开头的,比如宏定义和include)进行预处理,详见 1.2 预处理指令。把预处理得到的结果和程序剩下的部分一起,组成一个完整的,可以用来编译的最终的源程序,编译程序对该源程序正式进行编译,得到目标程序。不同的编译系统除了会提供C/CPP规定的标准库函数外,有些编译系统还会提供自己的专门的函数/库函数。C/CPP的编译过程: 图自:什么是动态链接与静态链接? 编译自动包括预编译和正式编译两个阶段,编译得到本源文件的目标文件(Windows下一般是.obj的后缀,UNIX下一般是.o的后缀)。再通过链接把所有需要的目标文件链接在一起,就得到了最后的可执行程序(Executive program,Windows下一般是.exe的后缀,UNIX下一般没有后缀) 即便程序只有一个源程序文件(一个X.cpp),编译后得到的目标函数也不能直接运行,也需要经过连接阶段,因为要与库函数链接,才能生成可执行程序。 参考: 【本质】你知道C语言编译的过程吗?C语言程序设计-谭浩强Introduction to C/C++ compilation in Linux os with gccThe C++ Compilation Model1.2 预处理指令 #includeiostream这句话并不是C++语句,而是C++的一个预处理指令,以#开头与常规的C++语句相区别,行的末尾没有分号。#includeiostream是个包含指令,将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.hkea.cn/news/14439679/

相关文章:

  • 建个人网站的详细步骤wordpress 宽屏 主题
  • 珠宝首饰网站开发软件开发一般需要多少钱
  • 番禺网站建设成立公司流程
  • 天津网站建设索王道下拉双鸭山seo
  • 实惠高端网站设计品牌重庆高端网站设计公司
  • 佛山建网站公司哪家好做网站横幅用什么软件好
  • so域名网站做网站要多少费用
  • 做企业网站需要自己有公司吗做网站的空间是什么
  • 福安市代理做网站前端学习手机网站开发吗
  • 企业注册网站wordpress 什么语言包
  • 张家港保税区规划建设局网站站长之家权重查询
  • 巩义企业网站建设百度搜图匹配相似图片
  • 网站建设的公司业务网站开发里程碑
  • 俄语网站叫什么yandex昆明二建建设集团网站
  • 江苏省建设工程竣工验收网站网站建设服务器是什么意思
  • 网站制作公司哪家好北京建设网证书查询平台官网
  • 怎么样优化网站seo制作装饰公司网站
  • 自己做电台直播的网站最大招聘网站
  • 免费1级做爰片在线观看 历史网站公司网站建设意见
  • 联想电脑网站建设策划书个人网站这么做
  • 设计师万能导航网站做网站全国最大
  • 网站开发李沛杰iis做网站上传速度慢
  • 加微信群网站怎么做的怎样做一元购网站
  • 360站长腾讯云轻量服务器
  • 做网站和app那个花销大上海企业一户式查询
  • 汕头网站设计浩森宇特360元网站建设 网络服务
  • 怎么做网站寄生虫软件培训公司排名
  • 网站建设的整个流程谷歌在线浏览器免费入口
  • 1997年做网站是什么语言对网站分析
  • 本地建站软件有哪些四平网站制作