Я впервые использую make-файл. Я получаю сообщение об ошибке «Ошибка команды компоновщика с кодом выхода 1» при использовании команды «clang».
Я только что связал файлы .h в make-файле и запустил make all в Ubuntu Teminal.
CC_EXEC = clang
CC_FLAGS = -g
CC = ${CC_EXEC} ${CC_FLAGS}
BUILD_DIR = build
all: executable.out
executable.out: ${BUILD_DIR}/main.o ${BUILD_DIR}/UTrelloInterface.o ${BUILD_DIR}/User.o ${BUILD_DIR}/List.o ${BUILD_DIR}/Task.o
clang -g ${BUILD_DIR}/main.o ${BUILD_DIR}/UTrelloInterface.o ${BUILD_DIR}/User.o ${BUILD_DIR}/List.o ${BUILD_DIR}/Task.o -o ${BUILD_DIR}/executable.out
${BUILD_DIR}/main.o: main.cpp UTrelloInterface.h User.h List.h Task.h
${CC} -c main.cpp -o ${BUILD_DIR}/main.o
${BUILD_DIR}/User.o: User.cpp User.h
${CC} -c User.cpp -o ${BUILD_DIR}/User.o
${BUILD_DIR}/List.o: List.cpp List.h
${CC} -c List.cpp -o ${BUILD_DIR}/List.o
${BUILD_DIR}/Task.o: Task.cpp Task.h
${CC} -c Task.cpp -o ${BUILD_DIR}/Task.o
${BUILD_DIR}/UTrelloInterface.o: UTrelloInterface.cpp UTrelloInterface.h Task.h List.h User.h
${CC} -c UTrelloInterface.cpp -o ${BUILD_DIR}/UTrelloInterface.o
.PHONY: clean
clean:
rm -rf build/ && mkdir -p build
Я получил именно эту ошибку:
clang: error: linker command failed with exit code 1 (use -v to see invocation)
makefile:11: recipe for target 'executable.out' failed
make: *** [executable.out] Error 1
Я получил эту ошибку при использовании компилятора g ++:
g++ -g -c User.cpp -o build/User.o
g++ -g build/main.o build/UTrelloInterface.o build/User.o build/List.o build/Task.o -o build/executable.out
/usr/bin/ld: build/main.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
makefile:11: recipe for target 'executable.out' failed
make: *** [executable.out] Error 1
Что мне делать?