现在位置: 首页 > 编译器
2020-05-19 21:33 工业·编程 ⁄ 共 1402字 暂无评论
在嵌入式系统开发中,经常会听到一个词:交叉编译。到底什么是"交叉编译"呢?为什么要使用"交叉编译"呢?今天这篇文章,我们来讨论下这个话题。 在讨论交叉编译之前,我们先来聊聊编译。 1、编译 在程序开发中,使用高级语言编写的代码被称为源代码,比如用C语言编写的后缀名为.c的文件,或者C++编写的后缀名为.cpp的文件。源代码不能被机器执行,必须转换成二进制的机器代码(指令+数据)才能被CPU执行。...
阅读全文
2020-01-15 16:27 工业·编程 ⁄ 共 498字 暂无评论
Python有好几种版本的解释器: CPython:官方版本的解释器。这个解释器是用C语言开发的,所以叫CPython。CPython是使用最广的Python解释器。我们通常说的、下载的、讨论的、使用的都是这个解释器。 Ipython:基于CPython之上的一个交互式解释器,在交互方式上有所增强,执行Python代码的功能和CPython是完全一样的。CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。 PyPy:一个追求执行速度的Python解释器...
阅读全文
看起来像是个“鸡生蛋,蛋生鸡”的问题,实际上不是的。 这个问题的关键在于理解,编译器本身就是一个程序,它的功能就是把源代码翻译为计算机可执行的程序。 对于 C/C++、Go、Rust 这样的本地语言,它们编译生成后的目标程序就是目标平台的本地可执行程序。比如你用这三种语言写个 Hello World,在 Windows 平台下用编译的结果一定是一个 .exe 文件,这些 .exe 文件里面没有包含任何源语言的信息。Windows 运行它们的时候不知道...
阅读全文
2015-02-07 23:11 工业·编程 ⁄ 共 3977字 暂无评论
其实,“编译”这个词大多数时候,我们指的是由一堆.h,.c,.cpp文件生成链接库或者可执行文件的过程。但是拿C/C++来说,其实这是很模糊的,由一堆C/C++文件生成应用程序包括预处理---编译文件---链接(写的比较粗糙,不影响本文论述)。 首先,要明白什么是编译单元,一个编译单元可以认为是一个.c或者.cpp文件,每一个编译单元首先会经过预处理得到一个临时的编译单元,这里称为tmp.cpp,预处理会把.c或者.cpp直接或者间接包含的其...
阅读全文
在第一篇里面,我们已经提纲挈领的讲述了操作步骤,整个过程步骤有8步,但其中有5步你只需要简单的敲一个命令即可,只有剩下的三步需要你动手写一些东西,对应上面步骤中的蓝色黑体字部分,而本篇的重点就是如何在大型项目中完成这三歩。   步步为营:三步完成编译配置 【第一步:修改configure.ac文件】 从上面的步骤可以看到,使用autoscan工具扫描后就会生成一个简单的configure.ac文件,这已经是一个完整的configu...
阅读全文
使用过开源C/C++项目的同学们都知道,标准的编译过程已经变成了简单的三部曲:configure/make/make install, 使用起来很方便,不像平时自己写代码,要手写一堆复杂的Makefile,而且换个编译环境,Makefile还需要修改(Eclipse也是这样)。 这么好的东东当然要拿来用了,但GNU的Autotool系列博大精深,工具数量又多,涉及的语言也多,要是自己从头看到尾,黄花菜都凉了,项目估计早就结束了;上网搜样例倒是有一大堆,但都是“hel...
阅读全文
    将一个cpp文件分割成几个cpp文件,另外加上一个h文件。《C++游戏设计》这本书上了解到,cpp文件通常是要编译的,而且是带着h文件一起展开进行编译的。通常的h文件不能进行编译。所以我们只能在cpp文件上进行编译。但是这里问题就出现了。     如果一个大型项目,它要处理为数众多的文件,可能文件的包含关系有着数十层,h文件和cpp文件众多,那么项目组的如果修改了一个小小的h文件,就得使...
阅读全文
2012-11-24 21:30 工业·编程 ⁄ 共 7251字 暂无评论
    C++是一种复杂的编程语言,其中充满了各种微妙的陷阱。在C++中几乎有数不清的方式能把事情搞砸。幸运的是,如今的编译器已经足够智能化了,能够检测出相当多的这类编程陷阱并通过编译错误或编译警告来通知程序员。最终,如果处理得当的话,任何编译器能检查到的错误都不会是什么大问题,因为它们在编译时会被捕捉到,并在程序真正运行前得到解决。最坏的情况下,一个编译器能够捕获到的错误只会造成程序员一...
阅读全文
    许多初学者都会对这三个概念区分不清,应该说这三个概念是完全不同的,不能混为一谈。在本文中,我就尽我最大的能力来讲讲这三个概念以及他们之间的关系。 首先说程序设计语言     它同人类的自然语言一样也是一个语言,并且它是自然语言的一个子集。大家都知道自然语言是极其庞大和复杂的系统,具有很多不不确定性和不精确性,因此至今我们也没有办法对自然语言进行形式化的描述。程序设计...
阅读全文