大家好欢迎光临
在本视频中, 我将向您展示如何构建和运行上一个视频中的程序｡
如果你还记得, 我们有一个小程序, 基本上要求用户输入他们最喜欢的数字,
然后打印出最喜欢的数字｡
所以从过去的视频中, 你应该明白, 有很多步骤来创建一个程序, 你可以运行｡
你必须编译, 你必须链接, 然后你必须创建二进制文件｡
所以到目前为止, 我们能够成功地编译｡
我们看不到任何错误｡
现在我们基本上需要为这个程序获取所有的外部依赖项, 编写标准的i/o头文件和C编程语言提供的任何其他库｡
您可以使用所有这些O文件, 并使用所有外部代码来创建一个可执行文件｡
对吧？
这里有我们的源代码｡
你会看到我们的源代码是一堆一堆的｡
实际上, 你可以通过添加一些新的行来使这段代码更具可读性, 就像这样｡
这只是让它更可读一点｡
现在, 正如我提到的, 我们已经编译了它｡
只是为了刷新你的记忆, 你可以用许多不同的方法编译一个源文件｡
你可以右键点击源文件, 然后说编译, 或者你可以选择那个源文件,
去构建, 然后说编译当前文件｡
如果我们选择我们的项目, 您将看到许多与建筑相关的不同选项｡
你看到的是建造, 重建, 清理, 停止, 建造｡
我们先来谈谈清洁｡
Clean基本上会清除您拥有的所有旧文件｡
所以请记住, 在之前的视频中, 当C程序被编译时, 您正在编译每个源文件,
并且程序可能由许多源文件组成｡
主点C还有其他文件吗？
有些程序包含成千上万的C源文件｡
一旦你编译了所有的C文件, 它就创建了所有的旧文件, 然后你把这些旧文件链接在一起,
创建一个单独的可执行文件｡
现在, 当你选择项目, 设置项目本身, 你说清理, 你所做的是你基本上删除所有这些旧文件,
你删除任何额外的工件, 你删除程序可执行文件, 你从头开始｡
你实际上得到了一个干净的工作空间, 然后你可以重新编译, 重新构建, 重新链接和重新创建一个程序本身｡
通常你想使用clean, 如果你遇到错误, 也许你只是想重新编译每个源文件,
因为通常当你运行C编译器时, 如果代码没有改变, 你试图编译该代码, 它通常不会重新编译它｡
所以如果你只是遇到了问题, 你有很多源文件, 你会看到没有意义的错误｡
从一个干净的状态开始, 去干净, 把一切都清理干净, 这可能是好的｡
你说干净, 它会告诉你｡
它基本上是从您的构建调试文件夹中删除所有内容｡
同样, 所有这些点操作系统都是你从头开始的可执行文件｡
这是一个很好的方法来解决任何类型的依赖关系或任何类型的问题, 而不必重新编译整个项目从头开始｡
所以在运行clean之后, 我们没有编译任何东西, 也没有构建任何东西, 我们可以通过说compile并点击每个文件来编译单个文件｡
如果你有很多源文件, 那么这并不是一个获得最终可执行文件的好方法｡
通常会发生的是, 你要确保你有你的应用程序项目,
你通常会说构建, 这将通过你的项目中的所有源代码, 并构建所有的文件｡
所以当你点击build时, 你会看到它通过并获取所有的源代码并重新构建｡
和同样的事情, 如果你右键单击, 你说重建, 这将不会重建所有的文件或只重建文件已更改｡
所以你可以说build, 这比编译每个源文件要容易一些｡
构建实际上会再次编译所有的源文件, 但也会链接它们, 这样你就可以在输出中看到了,
对吧？
如果你去构建输出窗口, 你可以看到我们首先发出一个GCC命令破折号C,
这是主点C上编译的标志, 然后我们传入64个架构优化的参数, 一些调试标准C,
所有警告的99个警告｡
然后我们做破折号o连接到主｡ cpp文件｡
我们基本上也会包括一些包含目录｡
然后在下一步中, 对, 我们发出破折号0来链接到每个外部依赖项｡
在这种情况下, 我们没有太多, 我们只有基本的链接, 我们用Dash L静态链接,
我们基本上是在构建这个对象列表文本｡
这里最重要的是它实际上创建了一个名为我们的第一个程序的可执行文件｡
你看｡
所以构建C程序的两个步骤都是这样的, 对吗？
它编译并链接它, 然后创建可执行文件｡
因此, 它只是通过构建而不是首先编译所有内容来使事情变得更容易｡
现在, 您可能希望编译单个文件, 只是为了查看发生了什么, 以确保源代码正确,
并且还没有准备好进行链接｡
你可能有五个文件在这里｡
你选择每一个你想说的, 好的, 我刚刚写了一些代码, 让我们编译它,
确保它都是好的, 然后我会去, 在下一个文件, 编译, 然后最终你建立一切｡
现在我们已经创建了一个实际的可执行程序, 我们可以实际运行我们的程序了｡
所以你要确保你有你的程序, 你的项目作为活动项目, 并突出显示它,
然后你可以去构建, 你可以简单地说运行｡
现在, 当您选择run时, 您可能会看到这个弹出窗口, 它说, 您想再次构建并执行吗？
现在你已经建立了, 所以你不需要真正的｡
你可以说执行｡
您可以选中该复选框以确保不会总是出现此问题｡
当你跑的时候, 它并不总是重建｡
你决定吧
重建所有内容会占用一些CPU处理时间, 但您可能并不担心这一点｡
所以你可以一直说构建和执行, 而不是弹出窗口, 或者你可以一直执行｡
现在, 如果我们选择execute, 它将获取可执行文件并运行｡
你会注意到它要求你输入你最喜欢的数字, 用户｡
所以你可以输入一个数字45, 点击键盘上的回车键, 然后它会显示你输入的数字45｡
同样, 一个非常简单的程序要求输入, 显示, 输出, 然后你可以按任意键继续关闭窗口｡
现在, 如果我们回到我们的工作区视图, 工作区窗口, 工作区窗格, 不管你怎么称呼它,
你会注意到我们有三个项目, 对吗？
我们的第一个项目是突出显示｡
这就是活跃的项目｡
其他项目仍然有他们的源文件在其中, 对不对？
主点C, 右｡
我们的其他项目, 它们基本上都是模板化的｡
你好世界密码
但是你看不到的是你看不到任何目标文件, 点零文件, 你看不到可执行文件,
任何类似的东西｡
现在, 您可以通过单击资源管理器选项卡来查看这些文件夹, 并且可以指定要打开的文件夹｡
通常这应该是你创建所有工作区的根文件夹｡
所以我通常把它们, 我想我把它们放在文档中, 就在文档中｡
我有我的工作空间｡
你会发现这里确实有很多东西｡
所以通常你想把它放在本地, 但是你会看到你有工作区一和工作区二,
你会看到那个工作区有点代码光文件｡
实际上, 您最好打开确切的工作区文件, 对吗？
因为这才是我们真正感兴趣的｡
我们对二号工作间感兴趣｡
比如说选择文件夹, 工作区二, 然后我们继续关闭我们现有的文档, 这样我们就可以继续,
我们可以说关闭｡
现在我们有了Workspace 2, 现在我们可以看到所有项目和文件的所有可执行文件｡
你注意到这里有一个轻型文件夹｡
代码目录只包含工作区的一些首选项等等｡
我们有一个build debug文件夹｡
这包含了我们的二进制目录, 其中包含了我们的可执行文件, 你会注意到我们还有一个R first程序目录,
它在build debug里面, 因为那个工作区, 那个项目已经构建好了, 你会看到在那里我们有我们的对象文件和任何其他依赖项,
这些都是构建在这个对象列表中的｡
我们有了第一个项目, 对吧？
这涉及到我们的源文件和任何其他make文件等等｡
你在其他项目中也看到了同样的情况｡
然后在最下面你可以看到编译命令, 点JSON｡
这通常用于代码完成｡
您将看到一个make文件, 然后看到一个workspace文件｡
但是Explore选项卡可以帮助我们查看整个工作区布局､ 所有项目､ 所有已构建的内容､
所有项目设置文件和所有项目源文件, 以及工作区本身对代码完成文件的任何依赖关系等｡
所以我们谈到了清洁, 对吧？
多干净实际上可以删除一切, 可执行文件中的所有对象文件｡
所以如果我们回到工作区视图, 当我们右键单击并说clean时, 我们突出显示我们的第一个程序项目,
这将删除所有这些项目｡
所以现在如果你回到你的资源管理器选项卡, 你去构建调试, 你会看到你会看到一切都在那里,
因为它还没有刷新｡
所以你可以刷新这个视图｡
所以我将右键单击我们的工作区, 并说刷新构建调试文件夹｡
所以通常会被删除, 但里面什么都没有, 对吧？
你可能又有垃圾桶了｡
通常会被清理干净｡
取决于权限, 但您没有任何旧文件｡
你没有你的可执行文件后, 做了一个清洁｡
现在, 如果我们回到workspace, 你可以看到这个小的下拉菜单, 它告诉你要构建什么,
你是为调试而构建, 还是为发布而构建｡
为调试而生成时, 它在程序可执行文件本身中包含调试信息｡
这通常发生在你开发代码的时候｡
您需要调试信息, 以防需要运行调试器等等｡
这并不总是好的, 当你发布一些程序到外地或客户进入生产模式,
所以你可以改变发布到发布时, 你正在建设, 你想分发这个程序的地方｡
所以当你构建它的时候, 你会注意到, 如果你去探索标签, 你会再次看到刷新｡
您将看到一个构建版本文件夹, 其中基本上没有调试信息, 因此您不必担心｡
基本上, 如果你有调试信息, 你可以生成一个核心文件, 你可以有黑客可以得到你的源代码的信息｡
所以当你在开发的时候, 你只为调试模式构建调试, 当你向客户发布你的程序的时候,
你会把它改为构建发布模式｡
同样, 这取决于你是在某个地方工作, 还是在为某个员工工作, 或者你实际上是在某个地方交付一些代码｡
通常您不会在资源管理器选项卡中真正修改任何内容｡
它只是给你一个视图, 什么是建立和您的可执行文件等｡
再次, 我提到你看到一些帮助文件｡
你可以看看其中的一些｡
其中一些将自动生成｡
你可以在这里看到一个make文件｡
这实际上是一个make文件, 可以根据您的项目设置生成｡
这是整个工作区的make文件｡
您可以查看特定的程序, 并查看再次生成的一些make文件, 但通常您不想弄乱任何这些东西｡
这只是再次提供了一个要编译的make文件｡
有时候当你有错误时, 你可以查看make文件, 看看到底发生了什么｡
可能有些东西没有正确生成｡
代码有时会有一些bug, 这取决于你使用的系统｡
同样, 如果你在Windows上, 我们通常使用UNIX文件生成系统, 如果你在Linux或Mac
OS上, 你只需要使用默认值｡
基本上就是这样, 对吧？
您可以关闭这些文件, 但您可以看到Explorer和工作区视图中发生的事情｡
现在, 在Workspace视图中, 如果您选择了一个项目, 您也可以说stop, build｡
因此, 有时编译和构建可执行文件可能需要很长时间｡
我的意思是, 如果你有成千上万的文件, 你可能需要30分钟的时间来构建｡
所以stop, build只是让你停止构建任何东西, 你知道, 编译和链接任何东西,
任何项目｡
同样, 当你有一个很长的编译过程时, 它很有用, 但是你通常不会在我们将要为我们的类编写的代码中看到它｡
另一个好处是, 如果突出显示工作区视图, 实际上可以一次性构建所有项目｡
您可以说构建工作区或清理工作区, 并删除所有项目的所有依赖项｡
但是如果你说构建工作区, 那将构建所有的项目, 不管它是否是活动的, 这就是你在输出窗口中看到的｡
好吧｡
我们正在构建项目三, 我们正在构建项目二, 我们正在构建我们的第一个程序｡
同样, 这里只是简单介绍一下如何从活动项目中构建和运行代码, 一些设置以及如何查看资源管理器选项卡｡
谢谢大家｡