wxWIdgets在Linux下配置为静态编译的方法

之前弄的那个ytsub,是用wxWidgets作GUI的。后来我把ytsub拿到另一台电脑上,却无法运行了。问了度谷之后知道是因为在编译的时候没有把wxWidgets的库静态编译到程序中,这样程序在运行的时候就会寻找wxWidgets的运行库,而如果没有安装wxWidgets的话程序就不能启动了。
用ldd命令可以看到一个程序需要加载哪些库,我用ldd查看ytsub以后,发现其中有一个模块就是wx的GTK模块,看来果然是因为没有把wxWidgets库编译到程序中去的问题啊。
于是我就开始找把wxWidgets编译到程序中的方法。找来找去,找到的内容基本上都是在Windows下的。在WIndows下只需要修改msw文件夹下的setup.h文件中的一个值就可以做到静态编译了。
我继续寻找,终于在wxWIKI上找到一个似乎是可用的方法。这个方法要求在编译wxWidgets的时候就要设置是动态编译还是静态编译了。于是我就按照上面的方法又编译了一次wxWidgets,在.configure的时候使用参数–disable-share,然后make && make install
编译安装以后,偶再次打开ytsub工程,运行重新编译。编译完成后再使用ldd命令查看,要加载的动态库列表中已经没有wx的GTK库了。然后我进入LiveCD(因为附近没有可用的Linux电脑),运行ytsub,成功!

This entry was posted in 零零散散 and tagged , , . Bookmark the permalink.

发表评论

电子邮件地址不会被公开。

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>