makefile j 并行编译
2016-11-12 19:53
483 查看
make -j
是项目较大时解决编译时间较长的一种方案,也有看到博客提到这个n的设置最好为多核处理器的核数目+1
并行同时会遇到很多问题,比如我们的进程,进程的同步和互斥就是个很复杂的问题
如果把并行引入到makefile中,也需要考虑同样的问题,简单来说,目标的依赖和伪目标就类似进程的同步,lockfile则是用来控制不同
目标对文件的互斥使用的
linux中的文件锁:引自百度百科
flock()会依参数operation所指定的方式对参数fd所指的文件做各种锁定或解除锁定的动作。此函数只能锁定整个文件,无法锁定文件的某一区域。
表头文件 #include<sys/file.h>
定义函数 int flock(int fd,int operation);
参数 operation有下列四种情况:
LOCK_SH 建立共享锁定。多个进程可同时对同一个文件作共享锁定。
LOCK_EX 建立互斥锁定。一个文件同时只有一个互斥锁定。
LOCK_UN 解除文件锁定状态。
LOCK_NB 无法建立锁定时,此操作可不被阻断,马上返回进程。通常与LOCK_SH或LOCK_EX 做OR(|)组合。
单一文件无法同时建立共享锁定和互斥锁定,而当使用dup()或fork()时文件描述词不会继承此种锁定。
是项目较大时解决编译时间较长的一种方案,也有看到博客提到这个n的设置最好为多核处理器的核数目+1
并行同时会遇到很多问题,比如我们的进程,进程的同步和互斥就是个很复杂的问题
如果把并行引入到makefile中,也需要考虑同样的问题,简单来说,目标的依赖和伪目标就类似进程的同步,lockfile则是用来控制不同
目标对文件的互斥使用的
linux中的文件锁:引自百度百科
flock()会依参数operation所指定的方式对参数fd所指的文件做各种锁定或解除锁定的动作。此函数只能锁定整个文件,无法锁定文件的某一区域。
表头文件 #include<sys/file.h>
定义函数 int flock(int fd,int operation);
参数 operation有下列四种情况:
LOCK_SH 建立共享锁定。多个进程可同时对同一个文件作共享锁定。
LOCK_EX 建立互斥锁定。一个文件同时只有一个互斥锁定。
LOCK_UN 解除文件锁定状态。
LOCK_NB 无法建立锁定时,此操作可不被阻断,马上返回进程。通常与LOCK_SH或LOCK_EX 做OR(|)组合。
单一文件无法同时建立共享锁定和互斥锁定,而当使用dup()或fork()时文件描述词不会继承此种锁定。
相关文章推荐
- Emakefile并行编译
- Android系统编译之Makefile
- Android.mk 浅析 模块编译Makefile编写
- linux下makefile多目录编译动、静态库
- 用CMakeLists.txt替代makefile创建openwrt软件包(编译自己的应用程序)
- Ubuntu16:cmake生成Makefile编译caffe过程(OpenBLAS/CPU+GPU)塈解决nvcc warning:The 'compute_20', 'sm_20'
- Linux Makefile编译系统之-------.config与arch/$ARCH/configs/${PLATFORM}_defconfig之间的关系
- android编译系统makefile(Android.mk)写法
- android编译系统的makefile文件Android.mk写法
- makefile 终极模板文件。此文在手,编译我有!
- 【学习笔记】编译Linux内核(下)---KConfig、Makefile详解以及ARM平台Linux内核的编译
- g++ 多文件编译之“平级目录”(新手初识makefile)
- android编译系统makefile(Android.mk)写法
- 编译模块(makefile)
- Kconfig Makefile 内核编译
- vc++ makefile编译
- UBOOT中makefile条件编译 -y 的原理
- Linux Makefile 编译速度的优化
- Makefile编译当前目录下所有c文件到共享库
- linux编译单独一个模块makefile写法