iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >EasyC++单独编译
  • 340
分享到

EasyC++单独编译

2024-04-02 19:04:59 340人浏览 安东尼
摘要

文章转自:微信公众号:Coder梁(ID:Coder_LT) 联合编译: 在上一篇当中,我们编写好了头文件coordin.h,现在我们要完成它的实现 头文件当中只能放一些生命和常量

文章转自:微信公众号:Coder梁(ID:Coder_LT)

联合编译:

在上一篇当中,我们编写好了头文件coordin.h,现在我们要完成它的实现

头文件当中只能放一些生命和常量的定义,不能有具体的实现。所以我们要把具体的实现单独放入一个cpp文件当中。因为我们的头文件叫做coordin.h,那么我们与之对应的cpp文件自然就叫做coordin.cpp

在coordin.h当中我们声明了两个函数,自然我们就要完成这两个函数的实现:


#include <cstdio>
#include <iOStream>
#include <cmath>
#include "coordin.h"

using namespace std;

polar rect_to_polar(rect xypos) {
    polar answer;
    answer.distance = sqrt(xypos.x * xypos.x + xypos.y * xypos.y);
    answer.angle = atan2(xypos.y, xypos.x);
    return answer;
}

void show_polar(polar dapos) {
    const double rad_to_deg = 57.29577951;

    cout << "distance = " << dapos.distance;
    cout << ", angle = " << dapos.angle * rad_to_deg;
    cout << " degress" << endl;
}

这两个函数一个完成的是直角坐标到极坐标的转换,还有一个是极坐标的输出,输出的时候还包括了一个弧度到角度的转化。

最后我们再来看main函数:


#include "coordin.h"
using namespace std;

int main() {
 rect rplace;
 polar pplace;
 while (cin >> rplace.x >> rplace.y) {
  pplace = rect_to_polar(rplace);
  show_polar(pplace);
 }
}   

这里有一个小细节,我们在引入coordin.h的时候使用的是双引号,而不是<>符号。因为如果使用的是尖括号,那么c++编译器将在存储标准头文件的文件系统当中去查找这个头文件,如果是双引号则会在当前目录或源代码目录查找。

还有虽然我们用到的函数实现是在coordin.cpp当中实现的,但我们并不需要将它include进来。而是在之后编译的时候连接进来。

现在我们的代码都已经写好了,但是我们有两个cpp文件,要怎么编译运行呢?

我们可以使用g++ -c命令,将cpp代码编译成目标代码。


g++ -o coordin.cpp


编译之后,我们将会得到一个coordin.o文件,我们再继续编译main.cpp文件:


g++ -o main.cpp


这样我们就得到了两个.o文件,

我们需要把这两个.o文件连接到一起编程一个可执行文件:


g++ coordin.o main.o -o cur


当然,我们也可以把main.cpp的编译和连接步骤合并在一起:


g++ main.cpp coordin.o -o cur


我们单独对每个文件编译的好处是,比如当我们只需要改动main.cpp的时候,coordin.cpp文件可以不用再编译,从而节省编译运行的时间。我们都知道,大型的C++项目的编译是非常耗时的。

当然大型项目当中,我们一般也不会手动编译项目,而会使用例如make等一些自动编译脚本。

到此这篇关于EasyC++单独编译的文章就介绍到这了,更多相关EasyC++单独编译内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: EasyC++单独编译

本文链接: https://www.lsjlt.com/news/160119.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • EasyC++单独编译
    文章转自:微信公众号:Coder梁(ID:Coder_LT) 联合编译: 在上一篇当中,我们编写好了头文件coordin.h,现在我们要完成它的实现 头文件当中只能放一些生命和常量...
    99+
    2024-04-02
  • EasyC++编写头文件
    文章转自公众号:Coder梁(ID:Coder_LT) 我们之前做的左右示例都是在一个单独的cpp文件当中完成的,当我们要做一个相对复杂或大型的项目时,我们显然不能把所有代码都写在一...
    99+
    2024-04-02
  • Linux模块文件如何编译到内核和独立编译成模块
    这篇文章主要介绍“Linux模块文件如何编译到内核和独立编译成模块”,在日常操作中,相信很多人在Linux模块文件如何编译到内核和独立编译成模块问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux模块文件...
    99+
    2023-06-15
  • 浅析golang编译器的独特优化和调试方法
    golang编译器的黑科技:揭秘其独特的优化与调试技巧在当今的软件开发领域中,Golang(或称为Go)语言因其简单易学、高效的并发编程和强大的性能而备受青睐。Golang的编译器在实现这些优势方面发挥着至关重要的作用。在背后,Golang...
    99+
    2023-12-29
    编译器 Golang 优化技巧
  • 使用C#编译器编译代码
    要使用C#编译器编译代码,可以使用命令行工具csc.exe(C#编译器),或者使用集成开发环境(IDE)如Visual Studio...
    99+
    2023-09-08
    C
  • 编译VIM
    编译VIM最麻烦的只有一个问题:各个语言的位置和开发库的位置。 注意:语言本身的位置好说,但是dev开发库就不一样了。比如,一般我们本机只安装python,而不会安装python-dev。这是两个完全不一样的概念。第一个我们直接使用的语言...
    99+
    2023-01-31
    VIM
  • java防反编译最简单的技巧分享
    前言本文主要跟大家介绍了关于java防反编译的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。示例代码:源码使用try-catch代码包装下,如下:public class CompileForbid { pub...
    99+
    2023-05-31
    java 防反编译 ava
  • MySQL编译安装与编译参数详解
    这篇文章主要介绍“MySQL编译安装与编译参数详解”,在日常操作中,相信很多人在MySQL编译安装与编译参数详解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL编译安...
    99+
    2024-04-02
  • 如何理解C++编译器编译功能
    如何理解C++编译器编译功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。下面深度讲解C++中的大规模C++编译器,C++编译器具有很强的复杂性,并且源程序的行数也是非常多...
    99+
    2023-06-17
  • Python中怎么实现编译和反编译
    这篇文章将为大家详细讲解有关Python中怎么实现编译和反编译,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、用Pyinstaller打包python代码1. 安装Pyinstaller安...
    99+
    2023-06-16
  • 如何使用java编译器进行编译
    使用Java编译器进行编译可以通过以下步骤:1. 确保已经安装了Java Development Kit (JDK)。可以通过在命令...
    99+
    2023-09-06
    java
  • 微信小程序编译bug---Hbuilderx编译时一直卡在编译界面
    项目场景:微信小程序新增某功能模块 问题描述 使用Hbuilderx开发微信小程序,正常开发中,在某次重新保存代码并编译后一直卡在编译界面; 如图(图为Hbuilderx界面) 因为此时...
    99+
    2023-09-11
    微信小程序 bug 小程序
  • rk3326 Android8.1编译
    此文档是根据 开发板基于 软件发布版本使用进行描述。目录: hardware/broadcom/libbt喇叭使能控制配置IO口和高低 注意要拉低才响spk-ctl-gpios = <&gpio0 RK_PC1 GPIO_AC...
    99+
    2023-06-05
  • Python 编译器
    Python 编译器 目录 什么是编译器Python 编译器的发展历程Python 编译器的类型常见的 Python 编译器如何选择 Python 编译器Python Logo 什么是编译器 编译器是...
    99+
    2023-09-20
    python
  • VSCode C++多文件编译的简单使用方法
    目录1.安装插件2.原因分析及解决思路3.解决方法测试源码C++中编写类时往往会分成.h和.cpp方便代码编写,这篇文章就来讲讲VSCode中怎么进行多文件编译。 1.安装插件 为了...
    99+
    2024-04-02
  • Golang交叉编译(跨平台编译)的使用
    目录一、何为交叉编译二、交叉编译前的准备安装TDM-GCC三、简述交叉编译四、实练1. 默认编译2.交叉编译一个Arm+Linux小总结一、何为交叉编译 简单地说,就是在一个平台上生...
    99+
    2024-04-02
  • android开发实践之ndk编译命令简单示例
    前言Android提供了NDK工具,用来编译native代码(c/c++),该工具配置好了相关的交叉编译环境和工具链,只需要你简单地编写几个.mk文件即可将你的c/c++代码编译为Android的java工程/Android手机可以识别、加...
    99+
    2023-05-31
    android ndk编译 命令
  • 【安卓逆向】APK修改与反编译回编译
    【安卓逆向】反编译修改APK回编译 使用工具流程步骤Apktool相关安装与使用常用命令备查APK签名命令备查 实战练习反编译查看修改的地方使用Apktool反编译得到产物文件夹并进行修改回编APK 实用场景 ...
    99+
    2023-08-19
    android android studio java
  • 怎么单独使用this
    本文小编为大家详细介绍“怎么单独使用this”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么单独使用this”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。   方法中的 t...
    99+
    2024-04-02
  • MySQL编译安装
    MySQL编译安装 安装依赖环境 yum -y groupinstall "Development Tools"yum -y install ncurses ncurses-devel openssl...
    99+
    2023-09-23
    mysql 数据库 linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作