Page 1 of 1

C/C++: Undefined reference to `main'

Posted: Fri Jun 01, 2007 1:18 pm
by The Punisher
έχω το εξής πρόβλημα με τον παρακάτω κώδικα. χρησιμοποιώ Eclipse, και όταν πάω να παράγω τα binaries, μου εμφανίζει το πρόβλημα
**** Build of configuration Debug for project ops ****

make -k all
Building file: ../ops.c
Invoking: GCC C Compiler
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"ops.d" -MT"ops.d" -o"ops.o" "../ops.c"
Finished building: ../ops.c

Building target: ops
Invoking: GCC C Linker
gcc -o"ops" ./ops.o
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../lib/crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
collect2: ld returned 1 exit status
make: *** [ops] Error 1
make: Target `all' not remade because of errors.
Build complete for project ops
ο κώδικας είναι, όπως τον κατέβασα απ' το eclass των λειτουργικών

Code: Select all

#include <stdio.h> 
int main(){ 
	int child, b;
	char command[25]={"find / -name "*.c" -print"};
	child=fork();
	if (child == 0) //child {
		printf("child\n");
		execlp (command,(char *) 0);
	}
	else{ //parent
		wait(&b); 
		printf("parent\n");
	}
}
Τώρα το πρόβλημα το έχω με την C. Παλιότερα το είχα και με την C++. Είναι κλασσικό prob απ' ότι έχω καταλάβει, αλλά δεν έχω καταφέρει να το λύσω ακόμη

Υπ' όψιν, χρησιμοποιώ managed make c project.

Ορίστε και το autogenerated makefile

Code: Select all

################################################################################
# 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 objects.mk

ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
endif

-include ../makefile.defs

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

# All Target
all: ops

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

# Other Targets
clean:
	-$(RM) $(OBJS)$(C_DEPS)$(EXECUTABLES) ops
	-@echo ' '

.PHONY: all clean dependents
.SECONDARY:

-include ../makefile.targets

Posted: Fri Jun 01, 2007 1:42 pm
by The Punisher
Ήμουν τραγικός! Δεν είχα σώσει το αρχείο... :roll:

Ας μην αναφέρω και το γεγονός ότι ο κώδικας, χωρίς να τον αλλάξω manually, δεν έτρεχε, καθώς είχε λάθη. Όταν βγάζεις κάτι online δεν υποτίθεται ότι το έχεις κάνει compile και δεν το έχεις τρέξει απλά με το μάτι (τι θυμήθηκα τώρα :evil:)?

Posted: Fri Jun 01, 2007 1:48 pm
by tsilochr
χάρη, το μόνο που μένει τώρα είναι να κλειδώσεις μόνος σου και το thread :-D

Posted: Fri Jun 01, 2007 1:51 pm
by The Punisher
χαχα :-D ! το αφήνω φυσικά, μπας και έχει και κανείς άλλος καμία απορία επί του θέματος.

Πάντως είμαι self-sufficient ε? Δεν θέλω παράπονα ...

Posted: Fri Jun 01, 2007 2:02 pm
by Crab
tsilochr wrote:χάρη, το μόνο που μένει τώρα είναι να κλειδώσεις μόνος σου και το thread :-D
Σιγά ρε συ υπάρχουν και χειρότερα...
Σ' ένα άλλο forum ένας τύπος άνοιξε κουβέντα με τον εαυτό του :-D