我有RHEL 5.2,安装了Boost 1.33。 我下载了boost_1_44_0.tar.bz2。并建立它。完成后显示:
The Boost C++ Libraries were successfully built!
The following directory should be added to compiler include paths:
/home/dfe/Archive/boost_1_44_0
The following directory should be added to linker library paths:
/home/dfe/Archive/boost_1_44_0/stage/lib
答案 0 :(得分:12)
一个可能的原因是你只是“制造”而不是“make install”。 所以你应该运行“sudo ./b2 install”而不是“./b2”
Linux系统中始终存在步骤安装软件 1.配置“检查” 2.制作“在当前目录下构建软件” 3.make安装“将文件复制到系统,以便其他软件可以使用该软件”
问题是你已经完成了两个步骤而最后一步没有完成
答案 1 :(得分:11)
首先,我使用
删除了现有的boost rpmrpm -e boost-1.33.1-10.el5
显示一条消息,说“error:”boost“指定多个包”
然后尝试了:
rpm -e --allmatches boost
(我不记得是否输入'boost'或'boost-1.33.1-10.el5')
显示了具有依赖关系的包。 我做了:
rpm -e [packagename1]
rpm -e [packagename2]
等等然后做了:
rpm -e --allmatches
这完全取消了我的系统。
然后我使用tar -xvjf boost_1_44_0.tar.bz2解压缩了boost_1_44_0.tar.bz2并运行了bootstrap:
./bootstrap.sh
然后将bjam运行为:
./bjam install
就是这样! Boost安装在我的系统上,在编译程序时我没有必要指定任何链接器选项!好极了! 现在'rpm -q boost'命令显示没有安装包。
答案 2 :(得分:9)
您必须将这些目录包含在用于构建应用程序的makefile中
CC -I/home/dfe/Archive/boost_1_44_0 -L/home/dfe/Archive/boost_1_44_0/stage/lib yourprogram.cpp
-I选项将dir添加到搜索#include文件的目录列表中。
-L选项将dir添加到链接器
搜索库的目录列表中CC是sun编译器......
答案 3 :(得分:9)
只需添加.bashrc或.profile的路径(或任何浮动你的船):
export LIBS="-L/home/dfe/Archive/boost_1_44_0/stage/lib"
export CPPFLAGS="-I/home/dfe/Archive/boost_1_44_0"