2013-04-22 36 views
1

我碰到我的編譯器以下錯誤:哪個文件丟失? 「的i686-蘋果darwin11-LLVM-G ++ - 4.2:沒有這樣的文件或目錄」

g++ -c -m32 tracecone.cpp -I/usr/X11R6/include -I/usr/X11/include/GL -I/Users/owner/Documents/raytrace/Graphics -I../RayTrace -I/Users/owner/Documents/raytrace/Graphics -I/Users/owner/Documents/raytrace/VrMath -I/Users/owner/Documents/raytrace/OpenglRender -I/Users/owner/Documents/raytrace/RaytraceMgr 
g++ -o -m32 tracecone ../RayTrace/RayTraceData.o tracecone.o /Users/owner/Documents/raytrace/OpenglRender/GlutRenderer.o /Users/owner/Documents/raytrace/RaytraceMgr/SceneDescription.o -L/usr/X11/lib -L/usr/X11R6/lib -L/Users/owner/Documents/raytrace/Graphics -L/Users/owner/Documents/raytrace/VrMath -lglut -lGLU -lGL -lX11 -lXext -lXmu -lXext -lXmu -lXt -lXi -lSM -lICE -lraygraph -lvrmath 
i686-apple-darwin11-llvm-g++-4.2: tracecone: No such file or directory 
make: *** [tracecone] Error 1 

但是,我不知道哪個文件它的說法是不在那裏。這是否意味着tracecone?或其中一個庫文件?無論哪種方式,它看起來像一切都是正確的地方。

什麼可能導致此錯誤?

這裏是我的make文件:

PROG = tracecone 
RBASE= /Users/owner/Documents/raytrace 
GDIR=$(RBASE)/Graphics 
MDIR=$(RBASE)/VrMath 
ODIR=$(RBASE)/OpenglRender 
MANDIR=$(RBASE)/RaytraceMgr 

CFLAGS = -w -s -O2 -ansi -DSHM 
XLIBS = -lX11 -lXext -lXmu -lXext -lXmu -lXt -lXi -lSM -lICE 
LIBS = -lglut -lGLU -lGL 
RAYLIBS = -lraygraph -lvrmath 
INCLS = -I/usr/X11R6/include -I/usr/X11/include/GL 
INCL1 = -I$(GDIR) -I../RayTrace -I$(GDIR) -I$(MDIR) -I$(ODIR) -I$(MANDIR) 
LIBDIR = -L/usr/X11/lib -L/usr/X11R6/lib -L$(GDIR) -L$(MDIR) 
#source codes 
SRCS = $(PROG).cpp 

#substitute .cpp by .o to obtain object filenames 
OBJS = $(SRCS:.cpp=.o) 
#in ../Graphics 
OBJOD = $(ODIR)/GlutRenderer.o 
OBJO = GlutRenderer.o 
OBJMAND = $(MANDIR)/SceneDescription.o 
OBJMAN = SceneDescription.o 
OBJ_temp = ../RayTrace/RayTraceData.o 

#$< evaluates to the target's dependencies, 
#[email protected] evaluates to the target 

$(PROG): $(OBJS) 
    g++ -o -m32 [email protected] $(OBJ_temp) $(OBJS) $(OBJOD) $(OBJMAND) $(LIBDIR) $(LIBS) $(XLIBS) $(RAYLIBS) 

$(OBJS): 
    g++ -c -m32 $*.cpp $(INCLS) $(INCL1) 

$(OBJ1): 
    cd $(GDIR); g++ -m32 -c $*.cpp $(INCLS) 

$(OBJM): 
    cd $(MDIR); g++ -m32 -c $*.cpp $(INCLS) 

$(OBJO): 
    cd $(ODIR); g++ -m32 -c $*.cpp $(INCLS) 

$(OBJMAN): 
    cd $(MANDIR); g++ -m32 -c $*.cpp $(INCLS) 
clean: 
    rm $(OBJS) 

clean1: 
    rm $(OBJD1) 

在此先感謝。

回答

2

你應該把你的目標-o右後旗: g++ -o [email protected] -m32 ...
標誌-o意味着輸出並在g++ -o tracecone ...情況下,你指定tracecone作爲輸出,但如果g++ -o -m32 tracecone ...您指定-m32作爲輸出和tracecone作爲目標文件之一。而且g ++說沒有這樣的目標文件,因爲實際上沒有這樣的文件。

+0

我做到了這一點,並結束了像這樣的錯誤'ld:warning:ld:warning:ld:warning:忽略文件/Users/owner/Documents/raytrace/OpenglRender/GlutRenderer.o,文件是爲不支持的文件而構建的格式(0x7f 0x45 0x4c 0x46 0x 2 0x 1 0x 1 0x 0 0x 0 0x 0 0x 0 0x 0 0x 0 0x 0 0x 0 0x 0)這不是被鏈接的結構(i386):',我不知道那是什麼手段。也許我應該開始另一個問題。 – UndefinedReference 2013-04-23 01:07:46

+0

我會回答這個問題。你可以關閉這個。 – cody 2013-04-23 05:38:17

相關問題