Gcc 来自“的故障排除警告”;make-j N“;

Gcc 来自“的故障排除警告”;make-j N“;,gcc,makefile,rhel,rhel-scl,Gcc,Makefile,Rhel,Rhel Scl,当我发出类似(例如)make-j4的命令时,我得到以下错误: warning: jobserver unavailable: using -j1. Add `+' to parent make rule 我正在RHEL6下使用Scientific Linux 6的开发者工具包: $ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-2/root/usr/libexec/gcc

当我发出类似(例如)
make-j4
的命令时,我得到以下错误:

warning: jobserver unavailable: using -j1.  Add `+' to parent make rule
我正在RHEL6下使用Scientific Linux 6的开发者工具包:

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/opt/rh/devtoolset-2/root/usr --mandir=/opt/rh/devtoolset-2/root/usr/share/man --infodir=/opt/rh/devtoolset-2/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --enable-languages=c,c++,fortran,lto --enable-plugin --with-linker-hash-style=gnu --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/cloog-install --with-mpc=/builddir/build/BUILD/gcc-4.8.2-20140120/obj-x86_64-redhat-linux/mpc-install --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.2 20140120 (Red Hat 4.8.2-15) (GCC)
我已安装
libmpc
0.8.3:

$ rpm -qa | grep mpc
libmpcdec-1.2.6-6.1.el6.x86_64
libmpc-0.8-3.el6.x86_64

有没有办法对我的项目的makefile或gcc进行故障排除,以确定导致警告的原因并修复它?在通过Clang/LLVM从OSX构建时,我似乎不需要将
+
符号添加到规则中。谷歌搜索警告文本并没有返回多少明显有用的信息。

无论何时从makefile内部运行
make
,都应该始终使用
$(make)
变量。永远不要使用原始的文本命令
make

问题不在于GCC、Clang或LLVM。它是
make
,是一个完全独立的程序。我们需要看到的信息是makefile中的哪个命令导致生成警告:它将是
make
本身的递归调用。假设您在OSX和Linux上都使用GNU make,并且您使用相同的
-j
标志调用这两个版本,并且您用于构建的makefile是相同的,我不知道为什么它在一个系统上工作,而在另一个系统上不工作。我假设您在这两个系统上使用相同的shell(例如不是
csh
),等等。我在RHEL6和OS X 10.9.2系统上都使用
make
3.81和
bash
。似乎与此问题相关的一行代码是我制作了一个静态的
bzip2
库:
cd第三方/bzip2-1.0.6&&make libbz2.a&&cd/foo/bar&&rm-f bzip2&&ln-s bzip2-1.0.6第三方/bzip2
我还有两个其他的第三方库构建到静态库中,这也显示了相同的警告信息。@Madscient您是否有可能详细说明“始终使用
$(MAKE)
”?