C++进阶篇 day3

4.27
一.如何使用第三方库
1.C/C++语言默认是支持标准输入输出库的,但是其他的相关函数库需要第三方引入,并且,编译程序时,需要链接上对应的库
2.使用数学库:#include<math.h>

3.线程支持类库:#include<pthread.h>
如果不能支持线程库:sudo yum install manpages-posix manpages-posix-dev

点击查看代码
#include<iostream>
#include<math.h> //数学相关函数所在的头文件
#include<pthread.h> //线程支持库的相关头文件
#include<unistd.h>
using namespace std;
//定义分支线程的线程体函数
void *task(void *arg)
{
   while(1)
   {
      cout << "hello world"<<endl;
      sleep(1); //休眠函数
    }
}
int main(int argc, const char *argv[])
{
     pthread_t tid; //定义一个线程号变量,用于存储创建出来的线程的线程号
     //创建线程
     if(pthread_create(&tid, NULL, task, NULL) != 0)
     {
         cout << "pthread_create error" << endl;
     }
     //主线程
     while(1);
     return 0;
}

二.Makefile文件

1.什么是Makefile
用于工程项目管理的一个文本文件,文件名为Makefile的文本文件Makefile可以大写,也可以小写,一般Makefile首字母使用大写,如果Makefile和makefile两个文件都存在,系统会默认使用小写的
例子:

2.什么是make
1)make是一个执行Makefile的工具,是一个解释器用来对Makefile中的命令进行解析并执行一个shell指令
2)make这个指令在 /usr/bin 中,默认linux系统中都已经安装,如果没有安装 make,安装指令如下

点击查看代码
sudo yum install make
make --version//查看是否安装成功

3.Makefile的用途
描述了整个工程的编译、链接规则,软件项目的自动化编译,相当于给软件编译写一份脚本文件

4.学习Makefile的必要
1)Linux/Uinx环境下开发的必备技能
2)系统架构师、项目经理的核心技能
3)研究开源项目、Linux内核原码的必需品
4)加深对底层软件构造系统及过程的理解

5.如何学习Makefile
1.理论基础

2.项目编程基础
1)C++程序语言基础
2)C语言基础

3.多文件原码管理、头文件包含、函数声明与定义

6.Makefile的工作过程

7.第一个Makefile
1、编写一个hello.cpp文件

点击查看代码
#include<iostream>
#include<stdio.h>
using namespace std;
int main(int argc, const char *argv[])
{
    cout << "hello world" << endl;
    return 0;
}

2、通过终端编译程序

3、使用Makefile管理工程
编写Makefile文件

点击查看代码
# Makefile中的注释是以#开头
# 语法格式:
# 目标:依赖
# 通过依赖生成目标的指令
# 注意:指令前面必须使用同一个tab键隔开,不能使用多个空格顶过来
hello:hello.o
g++ hello.o -o hello
hello.o:hello.s
g++ -c hello.s -o hello.o
hello.s:hello.i
g++ -S hello.i -o hello.s
hello.i:hello.cpp
g++ -E hello.cpp -o hello.i

简化的Makefile文件

点击查看代码
# Makefile中的注释是以#开头
# 语法格式:
# 目标:依赖
# 通过依赖生成目标的指令
# 注意:指令前面必须使用同一个tab键隔开,不能使用多个空格顶过来
hello:hello.o
g++ hello.o -o hello
hello.o:hello.cpp
g++ -c hello.cpp -o hello.o

4.执行Makefile文件
make --->默认找到Makefile中的第一个目标开始进行执行
make 目标 ---> 找到对应的目标进行执行

8.Makefile的语法规则
1、规则
构成Makefile的基本单元,构成依赖关系的核心部件
其他内容可以看做为规则的服务
2、变量
类似于C++中的宏, 使用变量:$(变量名) 或者 ${变量名}
作用:使得Makefile更加灵活
3、条件执行
根据某一变量的值来控制make执行或者忽略Makefile的某一部分
4、函数
文本处理函数:字符串的替换、查找、过滤等等
文件名的处理:读取文件/目录名、前后缀等等
5、注释
Makefile中的注释,是以#号开头

9.规则
1、规则的构成:目标、目标依赖、命令
2、语法格式
目标:目标依赖
命令

注意事项:
1)命令必须使用tab键开头,一般是shell指令
2)一个规则中,可以无目标依赖,仅仅是实现某种操作
3)一个规则中可以没有命令,仅仅描述依赖关系
4)一个规则中,必须要有一个目标

三种情况

posted @ 2025-04-27 19:38  北燃  阅读(18)  评论(0)    收藏  举报