2014-04-15 92 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可能是完全不必要的,但是如果沒有看到這些文件,我就說不出來。

相關問題