无法运行Code :: Blocks:找不到libwx_gtk2u-2.8.so.0

时间:2011-08-26 17:38:19

标签: shared-libraries wxwidgets codeblocks ubuntu-11.04

我正在尝试从(非SVN)源代码安装Code :: Blocks 10.05(codeblocks-10.05-src.tar.bz2)。我的操作系统是Ubuntu 11.04。我需要先下载并安装wxWidgets(我现在有wxGTK-2.8.12),这似乎有效。我按照这些说明编译了它:

http://wiki.codeblocks.org/index.php?title=Installing_Code::Blocks_from_source_on_Linux

然后我用

配置了C :: B.
./configure --with-wx-config=/opt/wx/2.8/bin/wx-config

然后跑

export LDFLAGS="-Wl,-R /opt/wx/2.8/lib"
make
sudo -i
make install

尝试运行C :: B时,出现以下错误:

codeblocks: error while loading shared libraries: libwx_gtk2u-2.8.so.0: cannot open shared object file: No such file or directory

这里问了同样的问题:error while loading shared libraries,但是建议的解决方案(即将wxWidgets配置添加到传递给configure的选项)对我来说不起作用。

wx-config --prefix的输出为/opt/wx/2.8

wx-config --libs的输出为-L/opt/wx/2.8/lib -pthread -lwx_gtk2u-2.8

which wx-config的{​​{1}}。

我查找了该库,发现/opt/wx/2.8/bin/wx-config是指向同一文件夹中/opt/wx/lib/libwx_gtk2u-2.8.so.0的链接。

这里可能有什么问题?

3 个答案:

答案 0 :(得分:2)

问题是程序无法在运行时中找到WX小部件库。您需要设置LD_LIBRARY_PATH变量以包含wxWidgets的位置,如下所示:

LD_LIBRARY_PATH=/opt/wx/2.8/lib ./codeblocks

它失败的原因是因为您编译了/ opt /中找到的wxWidgets的代码块而不是/ usr /中安装的代码块;该程序不知道在/ opt中查找wx库。

答案 1 :(得分:1)

在Ubuntu上获取代码:: block并运行的最简单方法可能就是通过Synaptic Package Manager安装它。只需在“快速搜索”中键入代码块即可。在列表中找到代码块,然后右键单击以标记安装。必要时,Synaptic将自动处理和安装所需的任何依赖项和缺少的库。

如果您有兴趣在Ubuntu上尝试每晚构建C :: B,那么您需要结帐Jens' unofficial debian-repository here

答案 2 :(得分:0)

您可以访问Why do I have to define LD_LIBRARY_PATH with an export every time I run my application?以获取更通用的案例。对于像您这样的特定情况,您可以按照以下步骤进行操作

如果您安装了wxGTK,那么您将在 / usr / local / lib 中看到该文件。当上述路径不是makefile的一部分时,您将收到此错误。在从CentOS上的源代码构建之后,我在启动 wxFormBuilder 时收到此错误。有两种方法。

方法1:将路径放在.bashrc

  

gedit / home / {your-username} / .bashrc

然后在行#User特定别名和函数之后粘贴以下

  

export $ LD_LIBRARY_PATH = / usr / local / lib。

这对于当前登录很好,但对于像root这样的其他用户,您可能必须在相应的.bashrc文件中执行相同操作。

方法2:创建自己的配置文件

  

cd /etc/ld.so.conf.d

     

gedit wxformbuilder.conf

     

提供路径 / usr / local / lib 并保存文件。

     

ldconfig (更新库路径)。