Ошибка в связывании make-файла (код выхода 1) - PullRequest
0 голосов
/ 09 ноября 2019

Я впервые использую 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

Что мне делать?

...