wxWidgets的MONOLITHIC编译

这里的wxWidgets是2.8.9版本。安装编译的过程网上都有很多,这里我只说一下我遇到的问题。

     第一个问题是build/msw/下的wx_dll.dsw配置问题,这个项目的工程生成的仍然是静态链接库文件,如果想要生成动态链接库文件要自行修改,而自己修改的话我又不知道怎么生成导入库文件(关于静态链接库,动态链接库,导入库的区别可以请教GOOGLE)。所以,如果想生成DLL文件的话,最好用命令行(在开始菜单的vs tools里面)。

    第二个问题,配置config.vc时,发现一个属性“MONOLITHIC ”,将他置为1则只生成一个大的DLL(其实还包含opengl的dll 总共两个文件),而导入库也只包含7个lib文件(否则是20个)。好了,这就出问题了-----编译时总提示无法打开wxbase28ud.lib等文件.的确无法打开,因为这个文件根本不存在,我们已经把这几个相关的lib文件合并成一个wxmsw28ud.lib。

    可是,我的库依赖项里也没包含这些文件啊?原来在/include/msvc/wx下有个setup.h的头文件。他自动帮助我们引入库文件,然而却不知道我们设置了MONOLITHIC,已经将文件合并 。

    知道了原因就好办了,将wxbase28相关的语句注释掉就好了。同时不要忘记在预处理命令添加WXUSINGDLL(自己在工程中声明也可以)。

    第三个问题,对于大型项目,用动态链接库是个好选择,可以有效的节省内存和文件体积;但是对于初学者来说和小程序来说静态库就足够了----反正程序文件也就几M。但是动态库可以编译通过的程序,我用静态库(当然,预处理命令等相关内容已经修改)却提示一大堆2019链接错误。无意中在网上发现,原来是缺少两个链接库文件comctl32.lib;rpcrt4.lib 加入后一切正常。

  附:comctl32.dll是Windows应用程序公用GUI图形用户界面模块。

          rpcrt4.dll是远程程序调用(RPC)应用程序接口API,用于WIndows应用程序对网络和Internet连接。

你可能感兴趣的:(windows,Google,dll,internet,tools,图形)