Я знаю, что много подобных вопросов, но мой бит немного отличается, а не им помогал.У меня есть библиотека 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
О себе:
- ОС: Debian 7 астматический
- прог. языки .: C++
- Компилятор: G ++ (Debian 4.7.2-5) 4.7.2
- линкер: ГНУ ЛД (ГНУ Binutils для Debian) 2,22
- подталкивание библиотека вер .: 1,49 (с DEBiAN репо)
Спасибо!
EDIT:
правильный вариант должен быть -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 ОДИН из следующих:
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