0.6编译你的第一个程序

2023-12-24 00:18
文章标签 编译 程序 第一个 0.6

本文主要是介绍0.6编译你的第一个程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在写第一个程序之前,我们先来大致了解一下开发环境。

第一点,我们需要知道,程序是写在.cpp文件中的,而.cpp文件需要被添加到项目(project)中,project保存了所有需要编译的文件名和IDE的各种设置。每次重新打开项目,IDE都会恢复到你上一次离开时的状态。当我们选择编译程序时,项目就会告诉编译器和连接器哪些文件需要编译和连接。值得注意的是一个IDE中的项目文件是不能在另一个IDE中工作的,如果需要在另一个IDE上工作,你需要重新创建一个项目或者用它覆盖一个旧项目。

第二点,项目有多种类型。每次创建新项目时,都需要选择一个项目类型,本教程中的所有项目都是控制台项目(console project),这意味着程序可以从DOS或者Linux的命令行运行。控制台程序默认是没有图形用户界面的(GUI,graphical user interface)并会被编译成独立的可执行文件。这对学习C++是十分有益的,因为这将其复杂性降到最低。

第三点,当你为程序创建一个新项目时,许多IDE都会自动把项目添加到“workspace”(工作空间)或“solution”(解决方案)中。工作空间或解决方案是一个可以容纳一个或多个相关项目的容器,尽管可以向一个单一解决方案中添加多个项目,我们还是建议您为每个项目创建新的工作空间/解决方案,这样更简单并能减少出错的几率。

按照传统经验,每个程序员用一种新的语言写的第一个程序都是臭名昭著的“hello world”程序,我们也不会打破这个传统,也许以后你会感谢我们。

一个简单的程序

从这节课开始,你会看到许多C++代码,许多代码都大致长这个样子:

#include <iostream>
int main()
{std::cout << "Hello world!" << std::endl;return 0;
}

你可以把这段程序复制粘贴到你的IDE中,如果粘贴后带有行号记得去掉。

如果你用的是Visual Studio

点击“新建项目(New Project)”或上方导航栏中“文件新建项目(file-new-project)”,图中使用的是Visual Studio 2005,其他版本类似,左侧选择Visual C++,项目类型选择“win32”,然后选择“win32控制台应用程序(Win32 Console Application)”,“名称(Name)”一栏中填入项目名称,例如“HelloWorld”,“位置(Location)”一栏中填入或浏览项目保存位置,点击“确定(OK)”即可完成项目的创建,如下:

在左侧的解决方案资源管理器(Solution Explorer)中,Visual Studio已为你创建了一系列文件,包括stdafx.h,HelloWorld.cpp,stdafx.cpp。(译者注:其他版本与此可能不同,此处讲解仅帮助读者了解IDE基本工作流程)

文本编辑器中可能已经准备好了示例代码,如上图,选择删除它,然后键入如下代码:

#include "stdafx.h"
#include <iostream>
int main()
{std::cout << "Hello world!" << std::endl;return 0;
}

完成后如下:

接下来编译程序,点击上方导航栏中的“生成(builb)”-“生成解决方案(Build Solution)”,如果一切顺利,你将会在输出(output)窗口看到如下信息:

这意味着程序编译成功了!

如果要运行编译好的程序,按F5或者点击导航栏中的“调试(debug)”-“开始执行不调试(Start Without Debugging)”,就会看到如下结果:

这就是程序的运行结果。

:如果控制台窗口(黑窗口)没有任何文字,可能是受到了反病毒软件的干扰,尝试关闭反病毒软件然后重试一次。

对Visual Studio用户的提示:Visual Studio程序必须有如下开头:

#include "stdafx.h"

否则你可能收到编译器的警告,比如:c:testtest.cpp(21) : fatal error C1010: unexpected end of file while looking for precompiled header directive(寻找预编译头文件时发生致命错误)。

你也可以关闭预编译头文件,但使用预编译头文件能让你的程序编译得更快,所以我们建议保留他,除非你想编写跨平台应用。

我们给的示例程序不会包含这一行,因为它是针对特定编译器的。

如果你使用Code::Blocks

同样,点击“文件(file)”-“创建新项目(new project)”,会弹出如下窗口:

选择控制台应用程序(Console Application),点击创建(Create)按钮。

然后程序会让你选择保存项目,你可以保存在任何你喜欢的位置。

在“default workspace”栏会看到Console Application。

展开Console Application,打开“Sources”,双击main.cpp,你会看到hello world程序已经作为示例为你准备好了。

同样按ctrl+F9或者点击build(生成)-build,一切顺利的话,你会在Build log(生成日志)窗口看到如下内容:

这意味着程序编译成功了。

按ctrl+F10或者点击build菜单栏中的“run(运行)”,就会看到与前面类似的运行结果。

如果你使用命令行编译程序

译者注:windows中的cmd(命令行提示符)或者Linux中的终端(terminal)。在文本编辑器中(例如记事本)输入如下程序并保存命名为HelloWorld.cpp。

#include <iostream>
int main()
{std::cout << "Hello world!" << std::endl;return 0;
}

在命令行中输入(前面已经讲过):

g++ -o HelloWorld HelloWorld.cpp

就可编译、链接helloworld.cpp,输入“HelloWorld”(也可能是“./HelloWorld”)以运行程序,就可以看到程序的输出结果。

如果你暂时使用网页版的编译器

将代码输入文本框中,点击运行即可看到输出结果。

安装完整的IDE后,你还是需要重新学习一下这节课。

如果你使用其他IDE

那么要搞清楚下面几点:

  • 创建一个控制台项目
  • 向项目中添加.cpp文件(如果需要的话)
  • 将下面的代码写入文件
    #include <iostream>
    int main()
    {std::cout << "Hello world!" << std::endl;return 0;
    }
  • 编译项目
  • 运行项目

如果编译失败……(天哪,又出了什么事?!)

没关系,做个深呼吸,相信自己可以解决它。

首先,确保输入的代码正确无误,无任何拼写错误(不带行号),编译器的错误提示可以帮助你确定错误所在。

然后,对照《0.7节:常见的C++问题》。这节列举了一些常见的问题,包括许多人经常遇到的COFF错误。

如果还是不行的话,复制错误信息,到google上搜索(译者注:可以加上引号实现精确搜索,百度同样适用),很可能在你之前已经有人遇到并解决了这个问题。

如果你是用的是版本较老的C++编译器,可能给出编译器不知如何引入iostream的错误提示,如果遇到这种情况,可以尝试把代码修改为:

#include <iostream.h>
int main()
{cout << "Hello world!" << endl;return 0;
}

建议升级编译器到最新版本。

如果程序成功运行但迅速闪退(窗口闪烁一下,然后很快消失)

某些编译器可能存在这种问题,比如Dev-C++,解决方案我们写在《0.7节:常见的C++问题》。

结语

祝贺你完成了最艰难的阶段(安装IDE并编译你的第一个程序),这意味着你迈出了第一步。

如果看不懂HelloWorld程序中每一行每一个单词符号的意思,不要担心,我们会在《1.1节:程序的结构》中详细地解释每一行。

转载请参看关于博客页面相关要求。

这篇关于0.6编译你的第一个程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/529965

相关文章

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

python编写朋克风格的天气查询程序

《python编写朋克风格的天气查询程序》这篇文章主要为大家详细介绍了一个基于Python的桌面应用程序,使用了tkinter库来创建图形用户界面并通过requests库调用Open-MeteoAPI... 目录工具介绍工具使用说明python脚本内容如何运行脚本工具介绍这个天气查询工具是一个基于 Pyt

Ubuntu设置程序开机自启动的操作步骤

《Ubuntu设置程序开机自启动的操作步骤》在部署程序到边缘端时,我们总希望可以通电即启动我们写好的程序,本篇博客用以记录如何在ubuntu开机执行某条命令或者某个可执行程序,需要的朋友可以参考下... 目录1、概述2、图形界面设置3、设置为Systemd服务1、概述测试环境:Ubuntu22.04 带图

Python程序打包exe,单文件和多文件方式

《Python程序打包exe,单文件和多文件方式》:本文主要介绍Python程序打包exe,单文件和多文件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录python 脚本打成exe文件安装Pyinstaller准备一个ico图标打包方式一(适用于文件较少的程

Python程序的文件头部声明小结

《Python程序的文件头部声明小结》在Python文件的顶部声明编码通常是必须的,尤其是在处理非ASCII字符时,下面就来介绍一下两种头部文件声明,具有一定的参考价值,感兴趣的可以了解一下... 目录一、# coding=utf-8二、#!/usr/bin/env python三、运行Python程序四、

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

SpringBoot后端实现小程序微信登录功能实现

《SpringBoot后端实现小程序微信登录功能实现》微信小程序登录是开发者通过微信提供的身份验证机制,获取用户唯一标识(openid)和会话密钥(session_key)的过程,这篇文章给大家介绍S... 目录SpringBoot实现微信小程序登录简介SpringBoot后端实现微信登录SpringBoo