构建wxWidgets后该如何处理

What to do with wxWidgets after building it

本文关键字:处理 何处理 wxWidgets 构建      更新时间:2023-10-16

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

我试着为gcc编译器使用-I参数,这样我就可以包含我显然构建的东西,它也可以编译程序,但我似乎无法打开.exe文件,因为它说它与我当前的Windows操作系统不兼容。

我觉得我错过了什么。我已经阅读了GitHub上的说明,但它都停留在如何在MinGW上构建WxWidgets上,并且没有解释构建后如何使用它。

编辑:@DavidC.Rankin尝试了你的方式,甚至尝试使用这样的make文件:

C:wxWidgets-3.1.1samplesminimal>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_mswudminimal.exe' failed
mingw32-make: *** [gcc_mswudminimal.exe] Error 1

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

第2版:记录在案。这是我用来构建wxWidgets的命令。

C:wxWidgets-3.1.1buildmsw>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 GUI代码添加到程序中。

然后,当您完成此操作时,向exactly发出与您用于构建wxWidgets的命令相同的命令,以便构建软件。你还需要检查VZ(Vadim(指向你的链接,因为它包含重要的信息。

如果您在构建/链接阶段遇到错误,请给出完整的错误消息。

安装说明描述了使用wxWidgets构建应用程序需要做什么,请参阅最后一节。

您应该使用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)