首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有没有办法知道makefile正在使用-j (并行执行)运行?

在Makefile中,可以通过特殊变量$(MAKEFLAGS)来获取make命令的参数信息,包括是否使用了-j选项进行并行执行。

具体来说,$(MAKEFLAGS)是一个包含了make命令参数的字符串,其中包括了-j选项的信息。我们可以通过在Makefile中输出$(MAKEFLAGS)来查看是否包含了-j选项。

以下是一个示例的Makefile代码:

代码语言:txt
复制
.PHONY: all

all:
    @echo $(MAKEFLAGS)

在命令行中执行make命令时,如果使用了-j选项,那么在输出中会包含"-j"字符串,表示正在使用并行执行。

例如,执行以下命令:

代码语言:txt
复制
make -j4

输出结果中会包含"-j"字符串,表示正在使用并行执行。

注意:以上答案中没有提及腾讯云相关产品和产品介绍链接地址,因为与问题内容无关。如需了解腾讯云相关产品,请参考腾讯云官方文档或咨询腾讯云官方客服。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

全民K歌后台编译优化:从40分钟到30秒

ok,并行编译就出错 目标依赖关系设置有问题,导致各个目标都并行在编译,比如有comm和cgi两个目标,实际上cgi是必须在comm编译完之后才能编译的,但是在makefile里没有让cgi依赖于comm...,比如设置了QMAKE=make –j 10, 在子进程里直接使用$(QMAKE) –f makefile来调用就会出现此问题,解决方法也很简单,去掉QMAKE变量,直接使用$(MAKE) –f makefile...目前想到的解决办法有三种: a. 使用make clean ;make all而不是make clean all,但是在cis上好像不支持 b....设置.NOTPARALLEL:来变成不并行,但实际测试发现全部都不能并行了。放弃。 ? c. 设置一个目标为clean_all,在makefile中把这个目标分成两个步骤,目前使用这个方案 ?...8.在cis系统中willParallelExec 设置的-j默认值是4,而且不能修改,解决办法是把这个参数设置了false, 直接在下面的环境设置里设置MAKEFLAGS 9.直接使用distcc ccache

1.8K50

全民K歌后台编译优化:从40分钟到30秒

ok,并行编译就出错 目标依赖关系设置有问题,导致各个目标都并行在编译,比如有comm和cgi两个目标,实际上cgi是必须在comm编译完之后才能编译的,但是在makefile里没有让cgi依赖于comm...,比如设置了QMAKE=make –j 10, 在子进程里直接使用$(QMAKE) –f makefile来调用就会出现此问题,解决方法也很简单,去掉QMAKE变量,直接使用$(MAKE) –f makefile...原因是递归调用的makefile里面直接使用了make –f makefile这样的形式,而没有使用MAKE变量,直接修改成$(MAKE) –f makefile就可以了。...设置.NOTPARALLEL:来变成不并行,但实际测试发现全部都不能并行了。放弃。 ? c. 设置一个目标为clean_all,在makefile中把这个目标分成两个步骤,目前使用这个方案 ?...8.在cis系统中willParallelExec 设置的-j默认值是4,而且不能修改,解决办法是把这个参数设置了false, 直接在下面的环境设置里设置MAKEFLAGS 9.直接使用distcc ccache

1.4K70
  • 专治看不懂makefile的人

    makefile文件是用来帮助编译和管理C++项目代码的,需要配合make命令使用makefile里也可以执行shell操作,具备一部分.sh脚本的功能。...举个例子 以下面简单的C++代码为例,说明makefile的具体使用。...= 2; j += 3; cout << j<<endl; } makefile文件,文件就是makefile CC=g++ all = test.o test: $(all) $(...如果打开一个开源C++项目的makefile,会觉得完全看不懂,就是因为里面大量使用各种技巧。但即使我们用最原始办法也就是第一次编写麻烦一些,之后维护是很简单的,因为一个C++项目不会频繁的大变样。...如果我们写make规则的文件叫test20200806,需要执行的命令是make -f test20200806。 并行编译 并行make的命令是make -j

    1.8K30

    cp: 无法创建普通文件 : 文件已存在

    那再结合上下文出现的打印,一个异常之处就是 Makfeile 被并行重复执行了,猜测是并行导致 cp 操作出错。...只考虑解决问题,那无疑是修改外层 Makefile ,避免此处被并行重复执行,至少这句 cp 不要被并行,就可以解决了。 但为什么 cp 并行执行会出错呢?...如果在另外的场景下确实有并行执行cp的可能,有没有办法规避这个错误呢?这就得探究下了。...那问题还是得结合并行来分析,碰到这种情况,要么是从搜索资料获得提示,要么就是实践出真知,自己设计一个可快速复现的方式,然后使用调试工具来追踪问题发生时的具体情况。...顺便看看,文件存在和不存在的open参数差异 解决办法 既然两个cp同时执行会出错,那就加锁呗。

    6.3K20

    TSN Usage——如何编译和使用temporal-segment-networks

    装完依赖后,开始执行cmake,使用OpenCV_DIR参数来设置OpenCV目录,指向我们自己刚才编译的OpenCV。...编译caffe-action 作者原来的代码是通过MPI来并行运行的,所以需要通过如下的cmake命令来编译caffe: OpenCV_DIR=/data5/yunfeng/Dev/opencv/release...但是这样编译的时候,CuDNN会报错,没有办法,我就用常规的make来编译了caffe-action: cd lib/caffe-action cp Makefile.config.example...Makefile.config vim Makefile.config # change the settings make -j40 这样整个工程就编译完了,好像也不是很复杂,但是出现问题解决不了的时候还是挺令人烦躁的...按理来说,这个问题可以通过修改头文件寻找路径,使得编译器使用2版本的头文件即可,但是我不知道怎么在cmake的时候指定头文件。。所以没办法,还是采用了3版本的OpenCV来编译。

    1.4K10

    Linux学习 - 命令运行监测和软件安装

    查看正在运行的命令和其资源使用 top top输出界面第一行主要信息是负载显示,分别是1分钟、5分钟、15分钟前到现在的任务队列的平均长度,一般与CPU数目相当为好,过大系统负载超额,反应慢 在top输出界面输入...# centos # 如果长时间没更新,先运行下update yum update # 如果不知道软件具体名字,可以先用一个关键字search一下, 选择正式的名字 # 需要注意的是一般的服务器都是64...如果不出问题,一步步执行下来就安装好了。但出了问题,就不是比较容易解决的。如果知道这背后的机制,对解决问题会有很大帮助的。...make后就获得了可执行程序,可以跳过make install的过程,只需要放入环境变量就可以运行了。...三部曲每一步的执行,屏幕上都会输出比较多的信息,一定仔细看最后有没有ERROR类的字样,对判断软件有无安装成功和下一步要怎么解决问题会很有帮助。

    1.9K60

    一日一技:如何正确在自己项目里面集成别人的代码?

    我们知道,在使用 Python 的时候,如果我想使用别人发布的第三方库,那么我们可以使用pip进行安装。...所以你没有办法使用 pip 进行安装。要使用它本身很简单,直接把这个文件JsonPathFinder.py复制到你自己的项目里面就可以了。...但是这样一来,你不知道我什么时候更新了代码,难道你每天要上来看看我有没有更新? 为了解决这个问题,我们可以使用git submodule功能。...现在,我们再来运行main.py,可以看到代码已经被正常执行了: ? 并且 git 会自动 Clone 子模块到对应的文件夹里面。我们使用子模块里面的代码,就像是直接使用复制粘贴下来的代码一样。...你完全可以把这条命令写到 Makefile 里面,结合我以前讲 Makefile 的文章,做一个自动更新的功能,每次当你要运行自己项目的时候,都自动更新一下子模块。

    82420

    Makefile常用命令详解

    本文将介绍Makefile中常用的命令,以及如何使用它们来编译和管理项目 --- make make命令是最基本的命令,用于执行Makefile文件中的规则。...通常,我们可以使用如下命令运行make:  make [options] [target] 其中,options是可选的参数,用于控制make的行为。例如,我们可以使用“-j”参数指定并行编译的数量。...在编译完成后,我们通常需要将生成的可执行文件或库文件安装到系统中,以便其他程序使用。...--- 自定义命令 除了上述常用命令外,Makefile还支持自定义命令。例如,我们可以定义一个命令来运行项目的测试:  test:     ..../run_tests 这条规则的作用是运行项目的测试脚本。 --- 高级特性 Makefile还支持循环、条件语句等高级特性。

    60231

    thrift:在cygwin下编译C library for win32(libc_glib)

    article/details/80380998 如果要编译thrift的C++ 库,参照thrift官方的说明:Building thrift on Windows (Native) 使用...安装依赖库 有了apt-cyg,安装依赖库和工具就方便多了,在cygwin命令行窗口执行下面的命令就可以完成所有依赖库及工具安装,如果安装过程中提示没有wget或lynx,请执行cygwin的setup-x86...,如 make -j8 指定8线程并行编译 make install 开始编译时可能会报错: make[4]: *** No rule to make target '/cygdrive/j/thrift...我遇到了这个问题,就是Makfile在找不到compiler/cpp/thrift,而compiler/cpp/thrift.exe明明是存在的,一直没找到原因,所以我的解决办法就是不编译lib/c_glib.../test,这就要修改lib/c_glib/Makefile.am, 找到SUBDIRS = . test这一行,替换为SUBDIRS = .

    1.4K20

    goland调试go代码_debug运行

    (重要) dlv attach pid:对正在运行的进程直接进行调试(pid 为进程id); dlv debug:编译源文件并开始调试,这里应和 main 函数位于同一目录,或者指定完整的 main 函数路径...方式一:使用 dlv 入侵 docker 中正在执行的进程 ID 准备: 这种方式的好处是不用破坏部署真实环境使用的 dockerfile 调试完成结束掉dlv 不影响线上的部署环境的正常运行,不好的地方就是比较麻烦.../hello"] 这个文件是 docker 镜像启动后的执行文件,即使用 dlv 侵入docker 中运行的进程id,该文件放入deploy文件夹下。...方式二:使用 dlv 直接在容器中执行 hello 程序 准备: 这种方式的好处是方便,直接跑起来 docker 即可进行调试,但它一直处在调试状态,是不可与你的测试环境并行的,你需要新建一套环境,而且...这种方式我失败了,每次在docker run 的时候都会报 no such file : 不知道为什么,可能是环境问题,我进入容器内部,执行dlv –listen=:2345 –headless=true

    3.2K30

    caffe+CPU︱虚拟机+Ubuntu16.04+CPU+caffe安装笔记

    文件 到CAFFE文件夹, 使用模板写个Makefile.config cp Makefile.config.example Makefile.config -因为CPU MODE, 所以在CPU_ONLY...Makefile.config #change setting in Makefile.config make all -j8  #在build文件夹下进行编译 make test -j8 make...runtest -j8  #使用CPU多核同时进行编译 3、python报错问题 (1)pycaffe时报错:fatal error: numpy/arrayobject.h: No such file...针对这一问题,官网给出的解答是两个原因: 1、VMware授权服务没有运行,解决办法参考见blog:http://www.2cto.com/os/201111/112418.html 2、服务不具有管理员权限...,用管理员身份运行 —————————————————————————————— 延伸一:使用安装VMware Tools工具进行文件共享 跟虚拟机进行文件共享需要下载一下VMware Tools,那么步骤为

    1.3K50

    Ubuntu16.04 Caffe 安装步骤记录(超详尽)

    完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 build-essential 已经是最新版 (12.1ubuntu2)。...make -j8 #编译 在执行 make -j8 命令编译到 92% 时可能会出现以下错误: modules/cudalegacy/src/graphcuts.cpp:120:54: error:...OK ,可以开始编译了,在 caffe 目录下执行 : make all -j8 这是如果之前的配置或安装出错,那么编译就会出现各种各样的问题,所以前面的步骤一定要细心。...编译成功后可运行测试: sudo make runtest -j8 如果显示结果为上图所示,则表示 caffe 已经成功安装。...caffe ,实际上大多数都是通过 python 来操作 caffe 的,而 notebook 使用浏览器作为界面,可以更方便的编写和执行 python 代码。

    1.5K20

    JVM-程序计数器

    程序计数器会存储当前线程正在执行的Java方法的JVM指令地址;或者,如果是在执行native方法,则是未指定值(undefined)。...,并执行该指令 4.两个常见面试题 使用 PC寄存器 存储字节码指令地址有什么用呢?...或者问 为什么使用 PC寄存器 来记录当前线程的执行地址呢?...为了能够准确地记录各个线程正在执行的当前字节码指令地址,最好的办法自然是为每一个线程都分配一个PC寄存器,这样一来各个线程之间便可以进行独立计算,从而不会出现相互干扰的情况。...在宏观上:我们可以同时打开多个应用程序,每个程序并行不悖,同时运行 但在微观上:由于只有一个CPU,一次只能处理程序要求的一部分,如何处理公平,一种方法就是引入时间片,每个程序轮流执行

    49020

    linux下如何使用configuremakemake install命令编译安装卸载程序

    一般来说,configure文件是位于源码根目录下的一个可执行的脚本文件,它有很多选项,而且不同软件的选项都不完全一致。可以在待安装的源码目录下使用命令....二、源码的编译 配置完毕之后,一般都会提示你,直接运行make命令进行编译。此时你照做就好,程序就会开始自动编译。...比如我自己做过的一个linux内核的编译过程测试,使用不同的参数编译的时间如下: 用make:40分16秒; 用make -j4:23分16秒; 用make -j8:22分59秒; 另外,这个方案不是完全没有弊端的...,如果项目的Makefile不规范,没有正确的设置好依赖关系,并行编译的结果就是编译不能正常进行。...如果依赖关系设置过于保守,则可能本身编译的可并行度就下降了,也不能取得最佳的效果。 三、程序的安装 编译完成之后,就是安装。

    4.8K20
    领券