Я пытаюсь включить этот файл в моем проекте: http://cairo.sourcearchive.com/documentation/1.9.4/backtrace-symbols_8c-source.htmlНе удалось установить связь с BFD
Но это требует увязки с BFD. У меня установлены как binutils
, так и binutils-devel
. Я попытался связать с -lbfd
, а также напрямую с /usr/lib64/libbfd.so
и /usr/lib64/libbfd.a
(которые оба существуют). Я также попытался найти pkg-config
, чтобы увидеть, есть ли другой флаг, который я должен использовать, но нет ссылки на BFD или binutils
в pkg-config
.
Независимо от того, что я пытался, я получаю следующие ошибки:
undefined reference to 'bfd_init'
undefined reference to 'bfd_openr'
undefined reference to 'bfd_check_format'
undefined reference to 'bfd_checkformat_matches'
undefined reference to 'bfd_close'
undefined reference to 'bfd_map_over_sections'
Сначала я компиляция моего регистратор и файл backtrace-symbols.c
я связан выше (как регистратор, где я намерен использовать это для печать). Тогда я связывая эти два объектных файлов вместе в объединенный файл объекта:
CC = clang
CFLAGS = -g -Wall -c
SOURCE = simplog.c
OBJ = simplog.o, simplog-temp.o, backtrace-symbols.o
all:
$(CC) $(CFLAGS) $(SOURCE); mv simplog.o simplog-temp.o; \
$(CC) -ansi $(CFLAGS) backtrace-symbols.c; \
ld -r simplog-temp.o backtrace-symbols.o -o simplog.o
clean:
rm -f $(OBJ)
Затем я связать этот объектный файл в мой основной проект:
CC= clang++
PROG= ./bin/chiplus8
OBJS= ./src/main.o ./src/Chip8.o ./src/EmuCPU.o ./src/SimpleLogger/simplog.o
LIBS=
CXXFLAGS= -g -Wall -std=c++11 $(shell pkg-config --cflags ${LIBS})
LDFLAGS= $(shell pkg-config --static --libs ${LIBS})
all: logger $(PROG)
$(PROG): $(OBJS)
mkdir -p ./bin/
$(CC) -g -rdynamic -o $(PROG) $(LDFLAGS) -lbfd -liberty $(OBJS)
rm -f $(OBJS)
logger:
cd ./src/SimpleLogger; make clean all
clean:
rm -f $(PROG) $(OBJS)
Я действительно не знаю, что мне нужно чтобы сделать это правильно. Есть что-то, что мне не хватает?
Ваше название немного вводит в заблуждение; вы не связываетесь с файлом '.h'. Обновите свой вопрос, чтобы показать точную команду, которую вы пытаетесь; порядок аргументов командной строки может быть критическим. –
Обновлено с помощью Makefile и объяснения использования. – PseudoPsyche