首页 > 编程语言 >C++编译小技巧

C++编译小技巧

时间:2023-03-05 23:32:33浏览次数:53  
标签:文件 技巧 ++ C++ 编译 cpp main log

1. 单文件

// math.cpp
int multiply(int a,int b)
{
  return a * b;
}

// main.cpp
#include <iostream>
int main(){
	std::cout << "Hello, world!" << std::endl;
	std::cin.get();
}

1.1单文件编译(不含main函数)

要单独编译而不链接,需要添加-c选项

g++ -c math.cpp (对应生成:math.o文件)

1.2 单文件编译(含main函数)

g++ main.cpp -o main (如果不指定,默认a.out)


2. 多文件

多个文件需要链接

// main.cpp
#include <iostream>
int main()
{
	log("Hello,C++");
	std::cin.get();
}
// log.cpp
#include <iostream>
void log(const char* message)
{
	std::cout << message << endl;
}

对于多文件,有以下几种编译方式:

  1. 一次性编译多个cpp文件,最后输出合并到一个.o文件。

编译命令:g++ main.cpp log.cpp -o hello

  1. 将它们全部单独编译,然后将所有生成的".o“文件链接在一起
g++ -c main.cpp (输出main.o)
g++ -c log.cpp (输出log.o)
g++ main.o log.o [-o program]

对于C++,我们分清楚编译阶段链接阶段,对于我们分析解决问题有很大帮助。

详细内容可以查阅GNU文档

标签:文件,技巧,++,C++,编译,cpp,main,log
From: https://blog.51cto.com/u_15951610/6101759

相关文章

  • 虚幻c++的习惯
    枚举E打头 起名字用E加后面的驼峰  用UENUM宏标记是为了通过反射系统给蓝图使用识别,nint8是为了限制枚举的范围  可以为了使蓝图端更方便使用 加到具体的注......
  • 2022年第十三届蓝桥杯大赛软件类省赛C/C++大学A组真题
    Preface周末没什么比赛打索性开始准备下蓝桥杯,然后就想着找一下去年的真题来做一下结果yysy去年的真题说实话有点难度的,感觉出题风格偏向OI比赛而和ACM的风格不太像啊感......
  • Tengine-2.4.0编译安装
    官方地址收集nginx官方安装地址https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/#installing-nginx-dependenciesnginx官......
  • C++枚举型变量用法
    #include<iostream>#include<string>usingnamespacestd;intmain(){enumname{one,two=23,three};//强制类型转换inta=one;cout<<a<<endl;//不能这样直接赋值//one......
  • C++友元函数(非成员函数)
    #include<iostream.h>#include<string>classStudent{private:intage;public:Student(){age=10;}out(){cout<<age<<endl;}//申明友元函数必须要在类中申明但是......
  • Ubuntu 22.10 下编译OpenCV 4.7.0
    最近入职的一家测控公司,项目中有涉及到机器视觉,对于机器视觉这一方向我完全是小白,准备作下知识储备,在LinuxC++环境下学习OpenCV;按照官方官方手册,下载源码编译成功后,运......
  • C++ 深度优先搜索(DFS) 讲解
    目录DFS初步概念DFS例题-迷宫游戏题目描述输入输出格式输入输出样例输入#1输出#1输入#2输出#2解题思路代码DFS初步概念DFS是一种深度搜索算法,它的特点是"不撞南墙不回头"......
  • 原生技巧篇
    nameletmsy='a';msy.name='xxx'console.log(msy);//undefined非严格模式返回undefined,严格模式报错==10==[[[10]]]+[[[10]]]//不管多少层,都是转成10解构......
  • node.js学习技巧
    --save===生产环境dependenciednpminstallxxxnpminstallxxx--savenpminstallxxx-Snpmixxx-S===开发环境devDependencies在devDependencies添加包......
  • 斯坦福课程 UE4 C++ ARPG游戏实例教程 01.基础AI与行树
    斯坦福课程UE4C++ARPG游戏实例教程0.绪论前言&摘要本篇文章是基于斯坦福UE4C++课程的学习记录。因为B站用户surkea由于学业原因,暂停了课程笔记的更新,这里狗尾续貂,将......