tôi đã xây dựng được một tập tin làm cho dự án của tôi, và nó hoạt động (tất cả mọi thứ biên dịch) nhưng nó mang lại cho các thông báo lỗi khó chịu:Tại sao khiếu nại về phụ thuộc vòng tròn?
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 của tôi là không phức tạp chút nào vì vậy hy vọng ai đó có thể phát hiện các lỗi.
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
Cảm ơn rất nhiều, đã xóa thông báo phụ thuộc vòng tròn. Tôi đã tìm ra rằng cũng có một biến CXXFLAGS, do đó cũng hoạt động. gcc được sử dụng cho C và g ++ cho C++, như tôi muốn. Nhưng tại sao lại sử dụng "cc" để liên kết? Tôi có phải lo lắng không? –
Vì có khả năng cc là một liên kết đến gcc, và điều đó sẽ ổn. Tôi khá chắc chắn rằng cả gcc và g ++ sẽ liên kết một ứng dụng hỗn hợp tốt. Tuy nhiên, trí tuệ thông thường có nó mà một trình điều khiển trình biên dịch C++ nên được sử dụng thay vì một trình điều khiển C để liên kết mã hỗn hợp. – RBerteig
nhưng có thể sẽ không theo dõi các phụ thuộc. –