4

我正在尝试从(非 SVN)源(codeblocks-10.05-src.tar.bz2)安装 Code::Blocks 10.05。我的操作系统是 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

这里问了同样的问题:加载共享库时出错,但建议的解决方案(即将 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/opt/wx/2.8/bin/wx-config

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

这里可能有什么问题?

4

3 回答 3

2

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

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

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

于 2011-08-29T23:24:00.557 回答
1

在 Ubuntu 上启动和运行 code::blocks 的最简单方法可能是通过 Synaptic 包管理器安装它。只需在“快速搜索”中输入代码块。在列表中找到代码块,然后右键单击以标记安装。Synaptic 会根据需要自动处理和安装所需的任何依赖项和缺少的库。

如果您有兴趣在 Ubuntu 上尝试 C::B nightly 构建,那么您需要在此处查看 Jens 的非官方 debian-repository

于 2011-08-27T00:25:35.863 回答
0

您可以访问为什么每次运行我的应用程序时都必须使用导出来定义 LD_LIBRARY_PATH?对于更通用的情况。对于像您这样的特殊情况,您可以按照以下给定步骤操作

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

方法一: 将路径放入 .bashrc

gedit /home/{你的用户名}/.bashrc

然后在 # User specific aliases and functions 这一行之后粘贴以下内容

导出 $LD_LIBRARY_PATH=/usr/local/lib。

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

方法 2:创建自己的 conf 文件

cd /etc/ld.so.conf.d

gedit wxformbuilder.conf

给出路径/usr/local/lib并保存文件。

ldconfig(更新库路径)。

于 2013-10-01T10:58:29.933 回答