5
votes

this is my first time using Eclipse, and my first time programming in a linux environment. So I might end up posting some semi-usless information, but I'm just trying to give what ever details I can.

The Issue: I'm trying to build a project, and I'm getting the following errors and warnings.

The Question: What would I have to do, and or get, in order to start working with c++ in linux, within an IDE? Fixing the error would be great, but the above stated is my underlying goal.

IDE Info:

Eclipse
Version: Helios Release
Build id: 20100617-1415

OS Info:

Fedora 13: i686

Errors(1 item)

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

Warnings(2 items)

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

Source Code

//============================================================================
// 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;
}

Generated 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

EDIT Tried running '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
You might try running that gcc command and seeing what it results in: g++ -E -P -v -dD /home/xoorath/workspace/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cppKaleb Pederson
@Kaleb Pederson Gave that a shot; It didn't fix the issue unfortunately. I posted the result of the command in an edit above.user401142
Yeah, it wasn't supposed to fix it... just tell us why it failed -- and you figured that out.Kaleb Pederson
@Kaleb Pederson Fair enough, well it certainly helped. Thank you.user401142
I solved the same problem in a similiar way to @Xoorath. I would rather post the following link: Steps for installing gcc c++ compiler in ubuntu because it is straightforward. I use ubuntu 11.10 and eclipse indigo. Plugins installed: C/C++ Development Tools and Autotools support for CDT.user1443317

2 Answers

7
votes

Simple solution really. Turns out I didn't have g++. I installed gcc, and perhapse somebody here knows the difference, if so feel free to enlighten me.

I had to go into the console and do the following

yum install gcc-c++

Thats it.

6
votes

Following are the values the make returns.

0 - if all makefiles were successfully parsed and no targets that were built failed 1 - if the -q flag was used and make determines that a target needs to be rebuilt 2 - if any errors were encountered.

and any errors numbers of form,

‘[foo] Error NN’ ‘[foo] signal description’ These errors are not really make errors at all. They mean that a program that make invoked as part of a recipe returned a non-0 error code (‘Error NN’), which make interprets as failure, or it exited in some other abnormal fashion (with a signal of some type).

If no * is attached to the message, then the subprocess failed but the rule in the makefile was prefixed with the - special character, so make ignored the error.

So, here the case of make returning the value of 127, is returned by the shell not from make. Please refer man page of bash.