Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux cmake:Add'+';用于启用并行生成的生成命令前缀_Linux_Bash_Cmake - Fatal编程技术网

Linux cmake:Add'+';用于启用并行生成的生成命令前缀

Linux cmake:Add'+';用于启用并行生成的生成命令前缀,linux,bash,cmake,Linux,Bash,Cmake,我有一个CMakeLists.txt,它有一个ExternalProject\u Add()。在ExternalProject_Add()中,我有一个调用bash脚本的BUILD_命令。然后脚本将继续调用make 除了在尝试使用并行make时看到以下警告外,其他一切都正常工作: warning: jobserver unavailable: using -j1. Add `+' to parent make rule 在普通Makefile中,如果要调用将调用make的bash脚本,则需要在调

我有一个CMakeLists.txt,它有一个ExternalProject\u Add()。在ExternalProject_Add()中,我有一个调用bash脚本的BUILD_命令。然后脚本将继续调用make

除了在尝试使用并行make时看到以下警告外,其他一切都正常工作:

warning: jobserver unavailable: using -j1. Add `+' to parent make rule
在普通Makefile中,如果要调用将调用make的bash脚本,则需要在调用bash脚本之前添加“+”,以便子make进程可以与父进程通信。例如:

all:
    + ./run.sh
因此,我试图用CMake实现同样的目标,但没有做到

当前,我的build命令如下所示:

BUILD_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/install.sh
在生成的build.make中,相关位如下所示:

torch/src/stamp/foo-build: torch/src/stamp/foo-configure
    ...
    cd ... && .../install.sh

如果我手动更新build.make,在“cd…”之前添加一个“+”,那么一切似乎都正常。因此,我试图找出一种方法,告诉CMake在执行“cd…”之前,它需要先加前缀“+”。还有其他方法可以这样做吗?

相关:。这个问题描述了BUILD_命令直接执行
make
时的情况。感谢您的注释。是的,当我直接从CMake呼叫make时,我知道这个选项。不幸的是,在这种情况下,我无法构建这样的东西。我遇到了同样的问题。在我看来,cmake缺少支持。如果合适的话,应该可以告诉它将+添加到它生成的任何规则中。