2011-10-22 116 views
0

我真的很困惑,問題可能是什麼。我把libbson.a libbson.so libmongoc.a libmongoc.so放到與我的可執行文件相同的文件夾中。頭文件也在同一個文件夾中。 然後我這個make它:無法動態鏈接到MongoDB的c驅動程序庫

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文件相同的方式發生嗎?

回答

0

處理.a文件就像一個對象文件解決了它。然而它應該可以像對待一個庫文件一樣對待它。這仍然不起作用。

相關問題