Floppy β Studio
Floppy β Studio

解决wxWidgets在VisualStudio下静态编译报错

起因

我想学习如何使用C++开发Windows桌面程序,微软给出了一个远古但似乎很好用的MFC,但显然这个东西不是那么好用。MFC的窗口都是直接放在资源文件中的,显而易见的,我可以把它拖进Resource Hacker肆意地修改它的界面。如果我哪天想要靠这个恰饭,肯定是不现实的,毕竟连氪金界面都能被修改,这验证了我们团队的开发者给我讲的那句“MFC = 没饭吃”

于是我看向了第三方的库:Qt太大了,而且很明显官方没有直接提供静态库,自己编译如此一个庞然大物,这怎么受得了,而且我C++技术也不是很好,Qt肯定看不懂,于是我用上了wxWidgets

环境

Visual Studio 2019 Windows 桌面程序,Release x64

源码使用wxWidgets实例中的Minimal.cpp

不使用wxWidgets官方下载下来的源码手动编译,取而代之的是微软的vcpkg,毕竟这玩意儿省事

vcpkg在VS中选择使用静态库

https://iruanp.com/fimg/6dc633a14b7c36b269501c8fd873deeb.png

寻找资料

我跟这个该死的静态链接器殊死搏斗了几个星期。

在谷歌上各种找,面向CSDN的编程在这里完全不起作用。无奈,看看wxWidgets的官方论坛。

意外发现相同问题的帖子:Visual Studio 2019 issue with static linking - wxWidgets Discussion Forum

挨个解决遇到的问题

LNK2038

予观夫VS盛状,在错误列表一栏,衔ERROR,吞WARN,浩浩汤汤,横无际涯.......

遇到一大堆上面这种问题

右键项目-属性-C/C++-代码生成,在右边选择运行库

如下图所示。

选择不带DLL的选择,以使用静态的wxWidgets

https://iruanp.com/fimg/11b16ce37f789db4a7a93f6f92c4d315.png

LNK2001

无法解析的外部符号,巴拉巴拉巴拉一大堆

https://iruanp.com/fimg/21bc80ddf6f48e33f81d6a4f4ef3ce77.png

按照上文提到的那个帖子,需要引入一些库。

这里我选择编译的是x86,所以添加以下代码以引入缺少的库

问题解决

到这里,问题应该就解决掉了,如果没有解决掉就在这篇笔记下面留言告诉我情况。

哈哈哈哈缠了我几个星期的问题终于解决了乐死我了

(这张软盘太逊了,这种小问题折腾几个星期才搞明白

# #
首页      开发      C++      解决wxWidgets在VisualStudio下静态编译报错

发表回复

textsms
account_circle
email


Floppy β Studio

解决wxWidgets在VisualStudio下静态编译报错
起因 我想学习如何使用C++开发Windows桌面程序,微软给出了一个远古但似乎很好用的MFC,但显然这个东西不是那么好用。MFC的窗口都是直接放在资源文件中的,显而易见的,我可以把它拖进…
扫描二维码继续阅读
2021-11-21