मैं अपने प्रोजेक्ट के लिए एक मेकअप फ़ाइल का निर्माण किया है, और यह काम करता है (सब कुछ संकलित) लेकिन यह इन परेशान त्रुटि संदेश देता है:सर्कुलर निर्भरताओं के बारे में शिकायत क्यों कर रही है?
make: Circular zpr.c <- zpr.o dependency dropped.
gcc -Wall -c -o zpr.o zpr.c
make: Circular readjpeg.c <- readjpeg.o dependency dropped.
gcc -Wall -c -o readjpeg.o readjpeg.c
make: Circular readppm.c <- readppm.o dependency dropped.
gcc -Wall -c -o readppm.o readppm.c
make: Circular SceneNode.cpp <- SceneNode.o dependency dropped.
g++ -c -o SceneNode.o SceneNode.cpp
make: Circular BoundingBoxNode.cpp <- BoundingBoxNode.o dependency dropped.
g++ -c -o BoundingBoxNode.o BoundingBoxNode.cpp
make: Circular GeometryNode.cpp <- GeometryNode.o dependency dropped.
g++ -c -o GeometryNode.o GeometryNode.cpp
make: Circular SceneGraph.cpp <- SceneGraph.o dependency dropped.
g++ -c -o SceneGraph.o SceneGraph.cpp
make: Circular testgraph.cpp <- testgraph.o dependency dropped.
g++ -c -o testgraph.o testgraph.cpp
मेरे makefile बिल्कुल इसलिए उम्मीद है कि किसी त्रुटि देखा जा सकता है जटिल नहीं है।
GXX=g++
CC=gcc
CFLAGS=-Wall
LIBS=-lGL -lglut -ljpeg
OBJS=helpers.o loadobj.o zpr.o readjpeg.o readppm.o SceneNode.o BoundingBoxNode.o GeometryNode.o SceneGraph.o testgraph.o
OBJS2=testgraph.o SceneGraph.o GeometryNode.o BoundingBox.o SceneNode.o readppm.o readjpeg.o zpr.o loadobj.o helpers.o
SRCS=testgraph.cpp SceneGraph.cpp SceneNode.cpp
.o.cpp:
$(GXX) $(CFLAGS) -c $<
.o.c:
$(CC) $(CFLAGS) -c $<
testgraph: $(OBJS)
$(GXX) $(LIBS) $(OBJS) -o testgraph
clean:
rm *.o
धन्यवाद बहुत कुछ, जो परिपत्र निर्भरता संदेशों को हटा देता है। मुझे पता चला कि एक CXXFLAGS चर भी था, जिससे यह भी काम करता है। जीसीसी सी के लिए प्रयोग किया जाता है, और सी ++ के लिए जी ++, जैसा कि मैं चाहता हूं। लेकिन यह लिंकिंग के लिए "सीसी" का उपयोग क्यों कर रहा है? क्या मुझे चिंता करनी है? –
चूंकि यह संभव है कि सीसी जीसीसी के लिए एक लिंक है, और यह ठीक होगा। मुझे पूरा यकीन है कि जीसीसी और जी ++ दोनों मिश्रित एप्लिकेशन को ठीक से जोड़ देंगे। हालांकि, पारंपरिक ज्ञान में यह है कि मिश्रित कोड को जोड़ने के लिए सी ड्राइवर के बजाय सी ++ कंपाइलर ड्राइवर का उपयोग किया जाना चाहिए। – RBerteig
लेकिन यह शायद निर्भरताओं का ट्रैक नहीं रखेगा। –