Динамическая библиотека с несколькими объектными файлами, происходит сбой при загрузке - PullRequest
0 голосов
/ 04 июня 2018

Аналогично этому сообщению: Компиляция нескольких исходных файлов C в уникальный объектный файл

Мне нужно скомпилировать несколько файлов C в одну динамическую общую библиотеку.Вот что у меня есть в моем файле Makefile:

_OBJS = file1.o file2.o

CFLAGS += -Wall -I../include 

SHARED_LIB =libdynamic.so

.PHONY: all
all:  (SHARED_LIB)

$(SHARED_LIB): 
        $(CC) -fPIC -c file1.c file2.c $(CFLAGS) 
        $(CC) -shared -o $(SHARED_LIB) -L$/lib -ldl $(_OBJS)

Однако созданная общая библиотека не имеет функций, принадлежащих file2.c.Как я могу заставить это работать?

Спасибо.

1 Ответ

0 голосов
/ 04 июня 2018

Вы не создаете объектные файлы (* .o).

Попробуйте:

$(SHARED_LIB):
    $(CC) -fPIC -c file1.c -o file1.o $(CFLAGS)
    $(CC) -fPIC -c file2.c -o file2.o $(CFLAGS)
    $(CC) -shared -o $(SHARED_LIB) -L$/lib -ldl $(_OBJS)

Кроме того, вам не хватает '$' после цели all:.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...