构建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 阶段遇到错误 - 请提供完整的错误消息。
我目前正在尝试将 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 阶段遇到错误 - 请提供完整的错误消息。