Код: Выделить всё
g++ -lpthread -pthread -std=c++11 -g -D_GNU_SOURCE src/QuoridorMain.o src/Tree.o src/utility.o src/Game.o src/storage.o -o qbot
/usr/bin/ld: error: src/QuoridorMain.o: file too short
collect2: error: ld returned 1 exit status
make: *** [Makefile:12: qbot] Error 1
Код: Выделить всё
# Makefile for qbot
# Compiler options
CXX = g++ # use g++ compiler
CXXFLAGS = -lpthread -pthread -std=c++11 -g -D_GNU_SOURCE -no-pie# openmp and pthread, g for debugging
.SUFFIXES: .o .cpp
OFILES = src/QuoridorMain.o src/Tree.o src/utility.o src/Game.o src/storage.o
qbot: $(OFILES)
$(CXX) $(CXXFLAGS) $(OFILES) -o qbot
@echo Produced qbot executable
clean:
$(RM) *.o *~
# Dependency rules for *.o files
src/Tree.o: src/Tree.cpp src/Tree.h src/utility.cpp src/Global.h
src/QuoridorMain.o: src/QuoridorMain.cpp src/Tree.cpp src/Game.cpp src/Global.h
src/utility.o: src/utility.h src/utility.cpp src/Global.h
src/Game.o: src/Game.cpp src/Game.h src/Global.h
src/storage.o: src/storage.cpp src/storage.h
Возможно, это важно: я компилирую на новом компьютере по сравнению с тем, на котором я разработал большую часть кода, и ранее получал ошибку, связанную с ld, которую я исправил, добавив флаг -no-pie. Однако для меня это имело смысл, и даже удаление флага -no-pie теперь приводит к той же ошибке компиляции. Кроме того: вполне вероятно, что во время выполнения моего кода есть серьезные ошибки. Раньше я получал ошибки сегментации или ее отсутствие во время выполнения в зависимости от того, закомментированы или нет определенные операторы std::cout. Мне сказали, что это признак серьезных проблем где-то еще, но если бы вы могли уточнить, что это за проблемы часто и как они теперь будут влиять на компиляцию, а не только на время выполнения, я был бы очень признателен. Спасибо!
РЕДАКТИРОВАТЬ: По предложению комментаторов я удалил все файлы .cpp из правил зависимостей .o. Я все еще получаю ту же ошибку после очистки. Я подозреваю, что мне придется сделать больше важных вещей, чтобы это действительно заработало, а не просто удалять файлы .cpp, но, похоже, это не является прямой проблемой.
Подробнее здесь: https://stackoverflow.com/questions/648 ... ing-o-file
Мобильная версия