Ok, ive đã đọc khoảng 10 hướng dẫn, nhưng tôi luôn gặp lỗi, tôi có 5 tệp, main.cpp class.cpp, class.h và functions.cpp và functions.h. Tất cả các hàm sử dụng đó từ các đối tượng khác nhau đều có nghĩa là các hàm trong hàm.cpp sử dụng các đối tượng từ classes.cpp.Tài liệu tham khảo không xác định trong makefile
makefile của tôi trông như sau
CC = g++ -O2 -I./sdl/include -L.
LIBS = -lm -lSDL -lpthread -ldl
SRC = main.cpp
SDLF = SDLfunctions.cpp
CLASS = classes.cpp
CLASSH = classes.h
SDLFH = SDLfunctions.h
all: main
main: SDLfunctions.o Classes.o $(SRC)
$(CC) -o [email protected] $(SRC) $(LIBS)
SDLfunctions.o: $(SDLFH) $(SDLF) $(CLASS) $(CLASSH)
$(CC) -o [email protected] $(SDLF) $(LIBS)
Classes.o: $(CLASS) $(CLASSH) $(SDLF) $(SDLFH)
$(CC) -o [email protected] $(CLASS) $(LIBS)
Tôi tiếp tục nói với tôi rằng nó đã không xác định tài liệu tham khảo. Tôi đang thiếu gì?
makefile gì đầu ra
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../crt1.o: In function `_start':
(.text+0x18): undefined reference to `main'
/tmp/ccJG6yQA.o: In function `DrawEnemies(SDL_Surface*)':
SDLfunctions.cpp:(.text+0x3a7): undefined reference to `Enemy::sprite'
/tmp/ccJG6yQA.o: In function `rysujpociski(int, SDL_Surface*, SDL_Surface*,
std::vector<AllyBullet, std::allocator<AllyBullet> >&, double)':
SDLfunctions.cpp:(.text+0x141f): undefined reference to `AllyBullet::sprite'
/tmp/ccJG6yQA.o: In function `global constructors keyed to width':
SDLfunctions.cpp:(.text+0x14a7): undefined reference to `Enemy::Enemy()'
collect2: ld returned 1 exit status
make: *** [SDLfunctions.o] Error 1
Các tập tin biên dịch tuyệt vời khi tôi đã có chúng trong Visual C++, vì vậy nó phải được makefile của tôi.
Vui lòng đăng đầu ra. Những gì không xác định tài liệu tham khảo? – EFraim
Khi chạy, bạn sẽ thấy các lệnh được thực thi. Chúng có khác biệt với các lệnh bạn sẽ gõ để biên dịch nó theo cách thủ công không? – rodrigo
Cải thiện tiêu đề câu hỏi để vui lòng _describes_ câu hỏi. –