我正在尝试从(非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
的链接。
这里可能有什么问题?
答案 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 (更新库路径)。