【发布时间】:2021-05-18 10:46:31
【问题描述】:
我是 C++ 和 wxWidgets 的新手。在过去的几天里,我按照 Visual Studio 的教程学习了如何构建 wxWidgets 桌面应用程序 (https://www.youtube.com/watch?v=FOIbK4bJKS8&t=800s)。
现在,因为我不熟悉 Visual Studio,所以我想转而使用 Atom 编辑代码并从 Windows 命令提示符使用 MinGW 进行编译。
该应用有以下文件:
cMake.h
AnalogRead.h
cMake.cpp
AnalogRead.cpp
在Visual Studio中,需要在项目中包含两个目录和一个库,分别是: 路径:
/wxWidgets/include
/wxWidgets/include/msvc
图书馆:
/wxWidgets/lib/vc_lib
相对于 C++ 代码所在的路径。
所以我尝试创建编译行,但没有成功:
c++ -I/wxWidgets/include -I/wxWidgets/include/msvc -L/wxWidgets/lib/vc_lib cMake.cpp AnalogRead.cpp -o test
但我收到以下错误:
In file included from AnalogRead.cpp:1:0:
AnalogRead.h:3:19: fatal error: wx/wx.h: No such file or directory
#include <wx/wx.h>
^
compilation terminated.
问题是,我在编译中包含了该路径。 wx/wx.h 在路径 /wxWidgets/include/ 内。
有没有办法解决这个问题?提前致谢。
【问题讨论】:
-
由于 Visual Studio 的社区版是免费的,您可以直接下载它,而不是使用已从 Linux 移植到 Windows 的编译器。您的问题似乎是由 Windows 和 Linux 路径的差异引起的。
-
除非你的编译器真的是 Visual Studio,否则在
/wxWidgets/include/msvc中使用头文件也是没有意义的。 -
我确实在 Visual Studio 中编译了 wxWidgets。我不知道在命令行中编译的目录会有所不同。我想我现在必须坚持使用 Visual Studio 以避免错误。
-
如果您使用 Visual Studio 编译 wxWidgets,那么您别无选择,只能将 Visual Studio 用于您的主程序。你不能像那样混合和匹配编译器。