目录
最近学习在linux环境下进行C++开发的基础知识,参考的教程是基于VSCode和CMake实现C/C++开发 | Linux篇,非常适合小白入门学习。
①安装gcc、g++和gdb:
- sudo apt update
-
- sudo apt install build-essential gdb
查看是否安装成功及版本:
- gcc --version
- g++ --version
- gdb --version
②安装CMake:
sudo apt install cmake
查看是否安装成功及版本:
cmake --version
①-g:编译带调试信息的的可执行文件
g++ -g main.cpp
②-O:优化源代码,-O1为默认优化,-O2为最常用的优化
g++ -O2 main.cpp
③-L(大L):指定库文件(动态库为.so文件,静态库为.a文件)所在的目录
④-l(小L):指定具体的库文件
g++ -L/home/liujinfu/libfolder -lmytest main.cpp
注:在 /lib,/usr/lib 和 /usr/local/lib 三个目录里的库可以直接用-l参数进行链接;上述指令中,/home/liujinfu/libfolder为库所在的文件夹,mytest为对应的libmytest.a静态库或libmytest.so动态库,动态库的优先级高于静态库。
⑤-I(大i):指定.h头文件的搜索目录
g++ -I/myinclude main.cpp
⑥-Wall:打印警告信息
⑦-w:关闭所有警告信息
- g++ -Wall main.cpp
-
- g++ -w main.cpp
⑧-std=c++11:设置编译标准
g++ -std=c++11 main.cpp
⑨-o:指定输出文件名(不指定,默认生成a.out可执行文件)
g++ main.cpp -o main
⑩-D:定义宏
①建议如下图所示的项目:
②代码实现:
main.cpp:
- #include
- #include "swap.h"
-
- using namespace std;
-
- int main(){
- int a = 3;
- int b = 4;
- cout << "Before Swap: " << endl;
- cout << "a = " << a << ", b = " << b << endl;
- swap(a, b);
- cout << "After Swap: " << endl;
- cout << "a = " << a << ", b = " << b << endl;
- }
swap.cpp:
- #include "swap.h"
-
- void swap(int &a, int &b){
- int temp;
- temp = a;
- a = b;
- b = temp;
- }
swap.h:
void swap(int &a. int &b);
③使用g++编译:
g++ main.cpp src/swap.cpp -Iinclude -std=c++11 -O2 -Wall -o test.out
④运行可执行文件: