2014-04-15 67 views
2

我尝试编译一个简单的C文件中Dev-C++,它显示了行错误25 C:\Users\varun\Desktop\cprog\Makefile.win recipe for target 'Project1.exe' failed.配方目标 'PROJECT1.EXE' 失败

Makefile.win

# Project: Project1 
# Makefile created by Dev-C++ 5.6.2 

CPP  = g++.exe 
CC  = gcc.exe 
WINDRES = windres.exe 
OBJ  = main.o Untitled2.o 
LINKOBJ = main.o Untitled2.o 
LIBS  = -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib" -L"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib" -static-libgcc 
INCS  = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.8.1/include" 
CXXINCS = -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.8.1/include" -I"C:/Program Files (x86)/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.8.1/include/c++" 
BIN  = Project1.exe 
CXXFLAGS = $(CXXINCS) 
CFLAGS = $(INCS) 
RM  = rm.exe -f 

.PHONY: all all-before all-after clean clean-custom 

all: all-before $(BIN) all-after 

clean: clean-custom 
    ${RM} $(OBJ) $(BIN) 

$(BIN): $(OBJ) 
    **$(CC) $(LINKOBJ) -o $(BIN) $(LIBS)** 

main.o: main.c 
    $(CC) -c main.c -o main.o $(CFLAGS) 

Untitled2.o: Untitled2.c 
    $(CC) -c Untitled2.c -o Untitled2.o $(CFLAGS) 

错误

C:\Users\varun\Desktop\cprog\Untitled2.o Untitled2.c:(.text+0x0): multiple definition of `main' 
C:\Users\varun\Desktop\cprog\main.o main.c:(.text+0x0): first defined here 
C:\Users\varun\Desktop\cprog\collect2.exe [Error] ld returned 1 exit status 
25  C:\Users\varun\Desktop\cprog\Makefile.win recipe for target 'Project1.exe' failed 
+2

它肯定也会说_why_它失败了。 makefile生成并且很可能是正确的。您必须向我们展示构建命令的确切完整输出。没有这些,我们不能帮助你。 –

+1

由于链接命令失败,我们很可能正在寻找链接器错误。 –

+0

我编辑了这个问题,并添加了构建命令的输出,请看看 –

回答

4

输出的重要位是:

C:\Users\varun\Desktop\cprog\Untitled2.o Untitled2.c:(.text+0x0): multiple definition of `main' 

它告诉你,函数main有两个定义。您需要在可执行文件中使用一个这样的定义。错误的下一行告诉你,那个地方的定义是:

C:\Users\varun\Desktop\cprog\main.o main.c:(.text+0x0): first defined here 

所以,你必须功能mainUntitled2.c定义,你必须在main.c定义的另一个功能main。删除其中的一个。从名字来看,main.c可能是完全不必要的,但是如果没有看到这些文件,我就说不出来。

相关问题