c / c ++ boost - 问题编译

时间:2011-03-24 15:38:25

标签: c++ c regex boost

我一直在试着弄清楚如何用boost regex编译我的应用程序。

我在centos 5上安装了来源。

g++ -lboost_regex -o my_app my_app.c $(mysql_config --libs --cflags)

它编译没有任何错误,但是当我执行它时:

error while loading shared libraries: libboost_regex.so.1.46.1: cannot open shared object file: No such file or directory

该文件的位置为:

/usr/local/lib/libboost_regex.so.1.46.1

有人遇到过同样的问题吗?

2 个答案:

答案 0 :(得分:3)

您是否尝试过LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH your_program以确定它知道在哪里可以找到共享对象?您可以使用-Wl,-R/usr/local/lib链接设置路径。

编辑:更清楚的是,当您链接代码时,链接器会将RPATH和RUNPATH嵌入到二进制文件中。这些值告诉运行时加载程序在哪里可以找到所需的共享对象。

如果您将-Wl,-R/usr/local/lib添加到链接命令中,该命令应该导致它嵌入该目录,并在加载程序时始终检查它。

答案 1 :(得分:0)

试试这个。

$ LD_LIBRARY_PATH=/usr/local/lib:LD_LIBRARY_PATH
$ export LD_LIBRARY PATH

现在试着告诉我们会发生什么。