在Microsoft Visual Studio 2017中设置wxWidgets

7

我已经花费了约20个小时来尝试在Microsoft Visual Studio 2017中设置wxWidgets。我已经遵循了以下步骤:

https://wiki.wxwidgets.org/Microsoft_Visual_C%2B%2B_Guide

https://raw.githubusercontent.com/wxWidgets/wxWidgets/WX_3_0_BRANCH/docs/msw/install.txt

还有许多关于如何设置它的网站,我甚至按照这个网站和youtube上的一些帖子:

如何使用Visual Studio 2015设置wxWidgets 3.1.0

我真的卡住了: 我从源代码编译它。而且我相信我没有任何问题。我静态编译它(DEBUG/RELEASE)...

每次我按照教程和帖子走,都会收到非常奇怪的消息...

有没有心地善良的人愿意花一些时间向我展示如何完全为Microsoft Visual Studio 2017 (项目设置或其他)设置wxWidgets?

每一个答案都将不胜感激 :|

很抱歉没有为你们提供足够的信息。

https://wiki.wxwidgets.org/Microsoft_Visual_C%2B%2B_Guide

一直在关注上面的链接... "手动创建新项目" 没有成功

使用 "从示例创建新项目":

使用最小示例而不是 internat,因为它有一个解决方案文件 (internat 没有)...

我修改了 .sln 和 .vcxproj 文件 (将 ../.. .... 替换为 wxWidgets 目录),当尝试编译一些简单的代码时,出现了很多错误,如: "无法打开源文件 "wx.wx.h"。所以我去了项目属性/vc++ 目录,并指定了包含和库位置

包含目录: C:\wxWidgets-3.1.0/include C:\wxWidgets-3.1.0/include/msvc

库目录 C:\wxWidgets-3.1.0/lib/vc_lib

然后我得到了很多像 "无法打开 C:\wxWidgets-3.1.0\samples.RC" 这样的错误

所以我用记事本打开了项目文件并添加了 source.rc 的位置:

ItemGroup ResourceCompile Include="C:\wxWidgets-3.1.0\samples\sample.rc" / 然后 source.rc 就消失了,但仍然存在 50 多个错误:

(例如,错误C2491“wxBitmapButton :: ms_classInfo”:不允许定义dllimport静态数据成员核心C:\ wxWidgets-3.1.0 \ src \ common \ bmpbtncmn.cpp 71)

有没有简单的方法设置wxWidgets?

{{link1:如何在Visual Studio 2015中设置wxWidgets 3.1.0}}

在上面的链接中,第一个答案的底部是“下一步是将samples \ minimal文件夹复制到某个位置并开始编写代码。您需要做的就是更改包含和Lib搜索路径。”

我真的不明白他的意思。我真的需要进一步的澄清。这可能会解决我遇到的所有可怕的错误。

这个“问题”可能非常混乱,但我别无选择,只能向更有经验的程序员寻求帮助...

不要这么快放弃我 :3


1
请更新您的问题,指出特定教程中哪个步骤出了问题,以及完整的错误信息。 - antlersoft
请发布更多信息,例如前几个错误的副本。 - axon
@DefenceWarfare,请发布您收到的错误。另外,为了检查编译,请尝试编译并运行与库提供的最小示例。如果可以成功编译和运行,则一切正常,您可以开始开发。 - Igor
@Igor,示例文件中的最小程序编译正常。我不知道如何正确设置MVS项目...有什么想法吗? - DefenceWarfare
@DefenceWarfare,如果最小样例编译并且可以执行,那么您就已经构建好库了。为了设置您自己的项目,建议将最小样例解决方案复制到某个目录中,并开始添加一些代码。在这过程中,您遇到了哪些问题? - Igor
我又做了一次,前三次编译都很好,但是后来一直收到以下警告信息: 警告访问路径“c:\ users \ defen \ source \ repos \ solution1 \ minimal \ vc_mswud \ minimal.exe”被拒绝。minimal C:\Program Files(x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.CppClean.targets 和: 错误LNK1104无法打开文件'vc_mswud\minimal.exe' minimal C:\Users\Defen\source\repos\Solution1\minimal\LINK 1 - DefenceWarfare
7个回答

2

我也像你一样尝试了很多小时,最终发现问题出在我的库是x64的,而我在Visual Studio中设置的是x86(在主窗口上,在调试按钮左侧)。希望这能帮到你。


2
要在您的应用程序中使用wxWidgets,请像往常一样创建新的Win32项目,然后将$WXWIN\include\msvc;$WXWIN\include添加到编译器选项 ("Properties|C++|General|Additional Include Directories") 和 $WXWIN\lib\vc_lib添加到链接器选项 ("Properties|Linker|Additional Library Directories")。就这些(并且文档记录在这里)。
如果您将wxWidgets用作DLL,还需将WXUSINGDLL添加到定义列表中,并将vc_lib替换为vc_dll

那是我尝试的第一件事。我又试了一次,但出现了错误,如找不到wx/wx.h源等...有什么想法吗? - DefenceWarfare
请检查您的 WXWIN 环境变量是否已定义,如果需要,请重新启动 MSVS。但是没有什么神奇的事情:如果您使用正确路径到包含 wx/wx.h 的目录,它 被找到。如果您不这样做,它就不会被找到。 - VZ.
我已经定义了WXWIN环境变量。我现在真的卡住了。我已经按照很多视频和指南的步骤操作过,但我仍然没有弄清楚。 - DefenceWarfare
你不需要任何视频,只需要一个(正确的)指南就足够了。你可能犯了一些愚蠢的错误,比如在某个地方打错了字,你只需要找到它。我们都会犯错,这是很难避免的,你只需要学会找到并纠正它们。同样,如果你在编译器选项中放置了正确的包含路径,头文件将会被找到。所以如果没有找到,路径就不正确。再次检查一下。 - VZ.
请查看 https://wiki.wxwidgets.org/Microsoft_Visual_C%2B%2B_Guide ... 看看“手动创建新项目”部分。它比你说的要复杂得多...即使在示例文件夹中的最小项目中,属性也添加了更多内容。我认为这不可能是打字错误之类的问题,因为我已经做了大约15次了... - DefenceWarfare
显示剩余5条评论

2
我需要在Visual Studio 2019上编译wxWidgets的“Hello world”调试x64版本,所需内容如下:
  1. 安装wxWidget
  2. 使用<wx_dir>\build\msw\wx_vc12.sln和x64 Debug和Release配置构建VS19
  3. 关闭VS
  4. 在新的VS实例中-创建一个新的空项目
  5. 添加main.cpp并在其中添加代码https://docs.wxwidgets.org/stable/overview_helloworld.html中的代码
  6. wxIMPLEMENT_APP(MyApp);行更改为wxIMPLEMENT_APP_CONSOLE(MyApp);
  7. 进行一些项目设置:
    • 添加到c / c ++ ->通用 ->其他包含目录- <wx_dir>\include和<wx_dir>\include\msvc
    • 添加到链接器- >通用 ->其他库目录- <wx_dir>\lib\vc_x64_lib
    • 对于调试,请添加到链接器- >输入 ->其他依赖项- wxmsw30ud_core.lib; wxbase30ud.lib;
    • c / c ++ ->语言 ->符合模式-设置“否”。这有助于我解决错误wxStrcoll:找不到标识符
希望它能帮助到某人。

1
使用任何一个xxxVC15.sln文件,我只需要前往工具->获取工具和功能并安装“Windows 8.1 SDK和UCRT SDK”就可以消除所有构建错误。我遇到的第一个错误与Windows 8 SDK有关,但之后我遇到了大量“找不到xyz”错误。我刚开始使用Visual Studio,但显然在2015年和2017年之间,Visual Studio更改了C库的位置/查找点,这导致wxMSW .sln文件出现问题。安装“Windows 8.1 SDK和UCRT SDK”解决了这个问题。

0
我也遇到了这个问题。wxWidgets文档中没有提到这个解决方案,但它对我起作用了。我将wxWidgets文件夹下的lib子文件夹中的dll文件重命名为:
从: VC_X64.DLL & VC_X64.LIB
到: VCnnn_X64.DLL & VCnnn_X64.LIB
其中nnn是Visual Studio的版本号。

0

尝试使用VS2017的预编译二进制文件。 在C++目录中: 添加/include 添加/lib 分别为wxWidgets的头文件和库。 最后,将wxWidgets的基础和核心库文件链接到您的项目中。 从wxWidgets官方网站编写一些标准的基本示例。 所有内容都应该正常运行。


0
在按照所有指示后,我也遇到了同样的问题。通过重启我的计算机来解决。我正在跟随一个教程,其中让我为wxWidgets设置一个环境变量,并在项目属性下使用它作为附加包含目录。看起来很好-当我打开cmd并回显%WXWIN%时,它显示了正确的目录,因此看起来应用而不需要重新启动,但即使重新启动VS,Visual Studio仍会出现无法打开"wx\wx.h"的错误信息。
因此,我重新启动了整个计算机,现在它正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接