构建wxWidgets后如何处理

What to do with wxWidgets after building it

我目前正在尝试将 UI 添加到我已经完成的程序中。所以我在互联网上搜索了大约 2 个小时,但在使用 MinGW 构建 wxWidgets 后仍然不知道如何使用它。

我尝试为 gcc 编译器使用 -I 参数,这样我就可以包含我显然构建的东西并且它可以编译程序,但我似乎无法打开 .exe 文件,因为它说它与我当前的 Windows OS.

不兼容

我觉得我在这里遗漏了什么。我已经阅读了关于 GitHub 的说明,但它都停留在如何在 MinGW 上构建 WxWidgets 并且它没有在任何地方解释如何在构建它之后使用它。

编辑: @DavidC.Rankin 以您的方式尝试过,甚至尝试过像这样使用 make 文件:

C:\wxWidgets-3.1.1\samples\minimal>mingw32-make -f makefile.gcc

但现在它给我这样的错误:

c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot find -lwxmsw31ud_core
c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot find -lwxbase31ud
c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot find -lwxtiffd
c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot find -lwxjpegd
c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot find -lwxpngd
c:/mingw/bin/../lib/gcc/mingw32/6.3.0/../../../../mingw32/bin/ld.exe: cannot find -lwxexpatd
collect2.exe: error: ld returned 1 exit status
makefile.gcc:221: recipe for target 'gcc_mswud\minimal.exe' failed
mingw32-make: *** [gcc_mswud\minimal.exe] Error 1

似乎是链接器工作不正常。但是我不知道为什么。

EDIT2:备案。这是我用来构建 wxWidgets 的命令。

C:\wxWidgets-3.1.1\build\msw>mingw32-make -f makefile.gcc CFG=32 CPPFLAGS="-DHAVE_TR1_TYPE_TRAITS" CXXFLAGS="-Wno-deprecated-declarations -Wno-unused-local-typedefs -fno-keep-inline-dllexport" MONOLITHIC=1 SHARED=1 UNICODE=1 BUILD=release`

安装说明描述了使用 wxWidgets 构建应用程序需要做什么,请参阅 last section

您应该使用 wx-config 的输出。

  • wx-config --cxxflags 将给出包含目录的列表
  • wx-config --libs "all" 将给出一个库列表。

如果您使用的是 GNU make,则可以设置变量来保存它们。

# wxWidgets
WXCXX      := $(shell wx-config --cxx)
WXCXXFLAGS := $(shell wx-config --cxxflags)

# ld has -o option, be careful
WXLD      := $(shell wx-config --ld)
WXLDLIBS  := $(shell wx-config --libs all)

.cpp.o:
    $(WXCXX) $(CXXFLAGS) $(WXCXXFLAGS) -o $@ -c $<

$(PROGRAM): $(OBJECTS)
    $(WXLD) $@ $(OBJECTS) $(WXLDLIBS) $(LDLIBS)

基本上,您需要做的就是将 wxWidgets GUI 代码添加到您的程序中。

然后,当您完成后,发出 exactly 您用于构建 wxWidgets 的相同命令以构建您的软件。您还需要查看 link VZ (Vadim) 指出的内容,因为它包含重要信息。

如果您在 build/link 阶段遇到错误 - 请提供完整的错误消息。