我知道,有很多類似的問題,但我是litle有點不同,並非他們幫助我。提升iostreams庫存在,但我無法連接它
我使用升壓Iostreams庫,這裏是我的問題,我想我的程序與庫鏈接:
ld -I/usr/include/boost/iostreams/ -I/usr/include/boost/iostreams/device/ -L/usr/lib/libboost_iostreams.so -lboost-iostreams fd.o -o x
,結果是:
ld: cannot find -lboost-iostreams
當我試着寫它明確:
ld -I/usr/include/boost/iostreams/ -I/usr/include/boost/iostreams/device/ --library /usr/lib/libboost_iostreams.so -lboost-iostreams fd.o -o x
它告訴我,該庫不存在:
ld: cannot find -l/usr/lib/libboost_iostreams.so
ld: cannot find -lboost-iostreams
但它確實:
$ ls -l /usr/lib/libboost_iostreams*
-rw-r--r-- 1 root root 204682 feb 4 05:28 /usr/lib/libboost_iostreams.a
lrwxrwxrwx 1 root root 20 feb 4 05:28 /usr/lib/libboost_iostreams-mt.a -> libboost_iostreams.a
lrwxrwxrwx 1 root root 28 feb 4 05:28 /usr/lib/libboost_iostreams-mt.so -> libboost_iostreams.so.1.49.0
lrwxrwxrwx 1 root root 28 feb 4 05:28 /usr/lib/libboost_iostreams.so -> libboost_iostreams.so.1.49.0
-rw-r--r-- 1 root root 94280 feb 4 05:28 /usr/lib/libboost_iostreams.so.1.49.0
關於我:
- OS:Debian的7喘息
- 編。郎:C++
- 編譯器:克++(Debian的4.7.2-5)4.7.2
- 接頭:GNU LD(GNU Binutils的用於Debian)2.22
- 升壓庫版本:1.49(與debian回購)
謝謝!
編輯:
正確的選擇應該是-lboost_iostreams
,不-lboost-iostreams
EDIT2:
編輯後,我的命令是:
ld fd.o -I/usr/include/boost/iostreams/ -I/usr/include/boost/iostreams/device/ -o x $(LIB_PATH) -lboost_iostreams
哪裏LIBPATH是ONE如下:
LIB_PATH=
LIB_PATH=-L/usr/lib/
LIB_PATH=/usr/lib/libboost_iostreams.so
LIB_PATH=/usr/lib/libboost_iostreams.a
,但結果仍然是:
ld: warning: cannot find entry symbol _start; defaulting to 000000000804cc10
fd.o: In function `__static_initialization_and_destruction_0(int, int)':
fd.cpp:(.text+0xd6): undefined reference to `__dso_handle'
ld: x: hidden symbol `__dso_handle' isn't defined
ld: final link failed: Bad value
make: *** [x] Error 1
該庫被稱爲帶有下劃線的'libboost_iostreams',但您試圖將'lboost-iostreams'與'-'連接起來。 – juanchopanza