[原创]编译安装 wxWidgets 2.6.3 (如何在一个系统中安装多个版本的wxWidgets库

C、C++和Java语言
回复
newlad
帖子: 258
注册时间: 2005-09-28 12:01
送出感谢: 0
接收感谢: 0

[原创]编译安装 wxWidgets 2.6.3 (如何在一个系统中安装多个版本的wxWidgets库

#1

帖子 newlad » 2006-05-14 3:58

今天下了本wxWidgets的唯一一本书
《Cross-Platform Programming with wxWidgets》
看了下,看着看着就想自己实践下,但发现一直编译不过来,原来是库出现了问题
正好下了2.6.3的,于是便编译了下

这里讲讲我为什么要安装多个版本的,其实主要是安装其他软件的时候需要一些2.6.1的包,比如AMULE等

1.构建编译环境(这点我也不太清楚,具体的可以去论坛上查查)


代码:
sudo apt-get install build-essential


2.在下载回来的包解压,然后输入命令

代码:

sudo mkdir buildgtk
cd buildgtk
../configure --with-gtk --enable-debug --prefix=/workspace/library/wxWidget (这是将文件安装到/workspace/library/wxWidgets, 这是我自己的文件甲,当然你可以换个,如果不指定 prefix 默认是安装在 /usr/local/里面)

make
make install (如果不行,就换成 sudo make install)
sudo ldconfig


这样库就安张好了.

为了方便编译,还需要做点东西

代码:

cd /usr/local/bin
sudo ln -s /workspace/library/wxWidgets/bin/wx-config wx-config



2。如果你已经安装过其他低版本的wxWidgets包,比如2.6.1的

如果需要写的程序用新的版本编译,可以将低版本的wx-config换过名字
这里我是直接删除再新建的
将新版本的wx-config放在/usr/local/bin中

代码:

cd /usr/bin
sudo rm wx-config
sudo ln -s /usr/lib/wx/config/gtk2-unicode-release-2.6 wx-config-2.6.1

如果需要旧版本来编译可以
g++ file.cpp `wx-config-2.6.1 --libs --cxxflags` -o file

注意:
如果安装2个版本后,运行2个不同版本的程序时候,就会有一个报错,
error while loading shared libraries: libwx_gtk2_xrc-2.6.so.0: cannot open shared object file: No such file or directory

这时候就要在配置动态文件的导入路径了

代码:

sudo gedit /etc/ld.so.conf

输入:(如果这个文件存在,只要在后面添加新版本库的位置,但是我的不存在)

/lib
/usr/lib
/usr/local/lib
/usr/X11R6/lib
/workspace/library/wxWidgets/lib

然后保存,再让系统重新配置动态文件导入的顺序

sudo ldconfig




其实还有个法子,就是在当前的工程文件夹中,新建一个连接,链接到你要用到的版本上,比如我要用新的2.6.3版本

我就可以在自己的工程文件甲中

cd 到你的工程文件甲里面
sudo ln -s /workspace/library/wxWidgets/bin/wx-config wx-config

等到编译的时候就只要
g++ file.cpp `./wx-config --libs --cxxflags` -o file

这种方法对于需要多个版本的更加灵活,就可以知道工程使用的是哪个版本

代码: 全选

ahlongxp
帖子: 209
注册时间: 2006-03-06 19:16
送出感谢: 0
接收感谢: 0
联系:

#2

帖子 ahlongxp » 2006-05-18 13:33

用来发行的基本上是静态编译
多个环境其实把make install省略了就可以了
回复

回到 “C/C++/Java”