Eclipse Make Error 127

时间:2010-08-13 16:29:55

标签: c++ linux eclipse compiler-errors

这是我第一次使用Eclipse,第一次在linux环境下编程。所以我最终可能会发布一些半无用的信息,但我只是想尽可能详细地说明。

问题:我正在尝试构建一个项目,我收到以下错误和警告。

问题:为了在IDE中开始使用c ++,我需要做什么,或者得到什么?修复错误会很好,但上面说的是我的基本目标。

IDE信息:

Eclipse
Version: Helios Release
Build id: 20100617-1415

操作系统信息:

Fedora 13: i686

错误(1项)

make: *** [src/xoorMath.o] Error 127 xoorMath C/C++ Problem

警告(2项)

Error launching external scanner info generator (g++ -E -P -v -dD /home/xoorath/workspace/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp) xoorMath Unknown  C/C++ Problem
Error launching external scanner info generator (g++ -E -P -v -dD /home/xoorath/workspace/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp) xoorMath Unknown  C/C++ Problem

源代码

//============================================================================
// Name        : xoorMath.cpp
// Author      : 
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <iostream>
using namespace std;

int main() {
    cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!

    return 0;
}

生成的Makefile

################################################################################
# Automatically-generated file. Do not edit!
################################################################################

-include ../makefile.init

RM := rm -rf

# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
-include src/subdir.mk
-include objects.mk

ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C++_DEPS)),)
-include $(C++_DEPS)
endif
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
ifneq ($(strip $(CC_DEPS)),)
-include $(CC_DEPS)
endif
ifneq ($(strip $(CPP_DEPS)),)
-include $(CPP_DEPS)
endif
ifneq ($(strip $(CXX_DEPS)),)
-include $(CXX_DEPS)
endif
ifneq ($(strip $(C_UPPER_DEPS)),)
-include $(C_UPPER_DEPS)
endif
endif

-include ../makefile.defs

# Add inputs and outputs from these tool invocations to the build variables 

# All Target
all: xoorMath

# Tool invocations
xoorMath: $(OBJS) $(USER_OBJS)
    @echo 'Building target: $@'
    @echo 'Invoking: GCC C++ Linker'
    g++  -o"xoorMath" $(OBJS) $(USER_OBJS) $(LIBS)
    @echo 'Finished building target: $@'
    @echo ' '

# Other Targets
clean:
    -$(RM) $(OBJS)$(C++_DEPS)$(C_DEPS)$(CC_DEPS)$(CPP_DEPS)$(EXECUTABLES)$(CXX_DEPS)$(C_UPPER_DEPS) xoorMath
    -@echo ' '

.PHONY: all clean dependents
.SECONDARY:

-include ../makefile.targets

修改 尝试运行'gcc -E -P -v -dD /home/xoorath/workspace/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp'

[root@wt227-09-fedora xoorath]# gcc -E -P -v -dD /home/xoorath/workspace/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp
Using built-in specs.
Target: i686-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/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-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch=i686 --build=i686-redhat-linux
Thread model: posix
gcc version 4.4.4 20100630 (Red Hat 4.4.4-10) (GCC) 
COLLECT_GCC_OPTIONS='-E' '-P' '-v' '-dD' '-mtune=generic' '-march=i686'
 cc1plus -E -quiet -v -P -D_GNU_SOURCE /home/xoorath/workspace/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp -mtune=generic -march=i686 -dD
gcc: error trying to exec 'cc1plus': execvp: No such file or directory
[root@wt227-09-fedora xoorath]# 

2 个答案:

答案 0 :(得分:7)

真正的简单解决方案。事实证明我没有g ++。我安装了gcc,并且在这里有人知道有什么区别,如果有的话可以随意启发我。

我必须进入控制台并执行以下操作

yum install gcc-c++

多数民众赞成。

答案 1 :(得分:6)

以下是make返回的值。

0 - 如果所有的makefile都被成功解析,并且没有构建的目标失败 1 - 如果使用了-q标志,make确定需要重建目标 2 - 如果遇到任何错误。

以及任何形式的错误编号

'[foo]错误NN' '[foo]信号描述' 这些错误根本不会产生错误。它们意味着作为配方的一部分调用的程序返回非0错误代码('错误NN'),这使得解释为失败,或者以某种其他异常方式退出(具有某种类型的信号)。

如果消息没有附加 * ,则子进程失败,但makefile中的规则以 - 特殊字符为前缀,因此忽略错误。

因此,这里返回值为127的make的情况,由shell返回而不是来自make。请参阅bash的手册页。