在Debian Squeeze上安装liboost-dev会给我提供一些像/usr/lib/libboost_thread.so.1.42.0
这样的库,但没有libboost_thread.so
。现在我无法使用gcc / ld的-l
标志进行链接,因为名称不会以.so
结尾。
我注意到/usr/lib
有很多其他形式为libfoo.so.N
而没有libfoo.so
的库,所以这不是Boost所特有的。我最终手动添加了libboost_thread.so.1
和libboost_thread.so
符号链接。 (ldconfig
的手册页建议它将添加链接,但它没有做任何事情)。
一切正常,但感觉很脏。我该怎么办?
答案 0 :(得分:2)
您安装了运行时包[{1}},但是开发包libboost-thread1.42.0
(甚至是全能包libboost-thread-dev
}。
获得相应的libboost-all-dev
包后,链接即可生效。这是大多数Linux发行版的一般特性 - 你几乎从不想要手工处理符号链接。
编辑:回复您的评论:
-dev
显然,包管理系统创建了链接并拥有它们。
答案 1 :(得分:0)
关于基本原理,德克的答案是正确的,但对于升压包装不熟练的人似乎还有一个陷阱。
通常,标头和库符号链接位于同一包中,因此无需考虑即可获得库符号链接。但是,通过增强,“ libboost <版本> -dev”提供了标头,而“ libboost-