Я действительно озадачен тем, в чем может быть проблема.Я помещаю libbson.a libbson.so libmongoc.a libmongoc.so в ту же папку, что и мой исполняемый файл.Заголовочные файлы также находятся в той же папке.Затем я make
это с этим:
CFLAGS += -I. -std=c99 $(shell pkg-config --cflags json) \
$(shell pkg-config --cflags glib-2.0)
LDFLAGS += -Wl,-rpath,/usr/local/lib $(shell pkg-config --libs glib-2.0) \
$(shell pkg-config --libs json) -lpcre -L. -Wl,-rpath,. \
-lmongoc -lbson
all: main.o
gcc $(LDFLAGS) -ggdb main.o -o main
main.o: main.c
gcc $(CFLAGS)-ggdb -c main.c
Компиляция работает, но когда я пытаюсь запустить его, динамический компоновщик жалуется! ldd main
показывает это: (почему это толькожаловаться на lbson например и вообще не показывать lmongoc?)
linux-vdso.so.1 => (0x00007fffb2fc9000)
libglib-2.0.so.0 => /lib64/libglib-2.0.so.0 (0x00007fd0dd9bd000)
libjson.so.0 => /usr/local/lib/libjson.so.0 (0x00007fd0dd7b5000)
libpcre.so.0 => /lib64/libpcre.so.0 (0x00007fd0dd57f000)
libbson.so.0.4 => not found
libc.so.6 => /lib64/libc.so.6 (0x00007fd0dd212000)
librt.so.1 => /lib64/librt.so.1 (0x00007fd0dd009000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd0ddcaf000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd0dcdec000)
Информация о файлах .a немного скудна, но, насколько мне удалось узнать, связывание должно происходить так же, какс .so файлами, верно?