使用wxWidgets进行跨平台GUI开发(附1)
<h2 id="补充说明wxwidgets在windows下使用cmake的配置">补充说明wxWidgets在Windows下使用CMake的配置</h2><p>wxWidgets官方提供了一个在Windows下使用CMake来构建wxWidgets库的方法,这样便于你自己用CMake构建项目。可参考源码包含的文档,这在下列这样的路径里:<br>
..\wxWidgets-3.x.x\docs\doxygen\overviews\cmake.md<br>
..\wxWidgets-3.x.x\samples\minimal\CMakeLists.txt</p>
<h2 id="构建并生成cmake配置">构建并生成CMake配置</h2>
<p>打开下载的wxWidgets-3.x.x这样的一个文件夹,里面会有个CMakeLists.txt文件,在此路径进入cmd<br>
输入命令(需要先配置好环境变量,我们指定安装路径,编译为静态库,创建out作为构建目录)<br>
<code>cmake -DCMAKE_INSTALL_PREFIX=%WXWIN% -DwxBUILD_SHARED=OFF -B build/cmake/out</code><br>
然后回车,我们就能构建好默认的64位程序架构配置(系统相关),然后输入编译生成命令(你也可以从sln在Microsoft Visual Studio 2010或更高版本的集成开发环境(IDE)来构建使用wxWidgets的项目,这样其实更推荐在build\msw目录下直接集成编译。如果你先前编译过wxWidgets库,记得备份lib这个文件夹)<br>
<code>cmake --build ./build/cmake/out --target install</code><br>
这会默认编译好Debug版本,建议先用例程测试验证Debug版本,然后输入<br>
<code>cmake --build ./build/cmake/out --target install --config Release</code><br>
编译安装Release版</p>
<p>现在构建32位的wxWidgets库,输入以下命令<br>
<code>cmake -A Win32 -DCMAKE_INSTALL_PREFIX=%WXWIN% -DwxBUILD_SHARED=OFF -B build/cmake/out</code><br>
然后一样的编译生成步骤</p>
<p>请不要忘了生成的CMake配置文件,它们存在于安装目录的lib\cmake、lib\vc_lib和lib\vc_x64_lib都有的mswu和mswud文件夹里,我们可以把这些配置迁移到相同编译工具链生成的wxWidgets库中(如MSVC)<br>
<img src="https://img2024.cnblogs.com/blog/3002049/202506/3002049-20250614161550721-665018770.png"></p>
<p>现在说明最小验证程序,找到官方提供的最小示例程序,在这样的路径<br>
..\wxWidgets-3.x.x\samples\minimal<br>
还是使用cmd编译</p>
<pre><code>cmake -B build -DCMAKE_PREFIX_PATH=%WXWIN%/lib/cmake/wxWidgets
(提示,你可以自定以设置添加环境变量如WXWINCMAKE其值填写为%WXWIN%/lib/cmake/wxWidgets,这样你就可以更简洁设置变量-DCMAKE_PREFIX_PATH=%WXWINCMAKE%)
cmake --build ./build
</code></pre>
<p>这样会在此build\Debug下生成一个minimal.exe可执行程序,运行效果如图<br>
<img src="https://img2024.cnblogs.com/blog/3002049/202506/3002049-20250614154135134-1522716247.png"></p>
<h2 id="总结">总结</h2>
<p>使用此构建方法可以直接生成一些繁琐的CMake配置,简化了CMake构建项目的工作。<br>
可以参考minimal的CMakeLists.txt文件,find_package命令使用如下<br>
<code>find_package(wxWidgets 3.2 COMPONENTS core base REQUIRED CONFIG)</code><br>
如果是直接集成编译的库,CMake是不能成功构建minimal的,因为CONFIG指示CMake只查找Config模式的配置文件。没有安装上述方式的配置,只能使用<br>
<code>find_package(wxWidgets 3.2.4 REQUIRED COMPONENTS core base adv html xml net aui stc xrc gl media qa richtext propgrid ribbon webview)</code><br>
这看起来就复杂不少,因为缺乏预先的配置,所以如果你使用CMake构建项目,我建议你使用上述方式的配置。<br>
提示:你可以查看lib\cmake\wxWidgets\wxWidgetsConfig.cmake文件,中间有这样一个命令<br>
<code>foreach(libname wxbase;wxnet;wxcore;wxadv;wxaui;wxhtml;wxpropgrid;wxribbon;wxrichtext;wxwebview;wxstc;wxxrc;wxmedia;wxgl;wxqa;wxxml)</code><br>
看起来是不是很眼熟!有了这个我们就不用重复配置这些组件。</p><br><br>
来源:https://www.cnblogs.com/bokong/p/18928436
頁:
[1]