Compilation 在Windows XP下使用MinGW从提示符编译wxWidgets应用程序

Compilation 在Windows XP下使用MinGW从提示符编译wxWidgets应用程序,compilation,cmd,mingw,wxwidgets,Compilation,Cmd,Mingw,Wxwidgets,好了,就这样。我相信这个标题描述得够多了。 我试图编译一个Hello World类应用程序,我用C++编写了WXWIDGET。 我有四个文件,让我们称它们为frame1.h、frame1.cpp、main.h和main.cpp 我只需要一个简单的(如果可能的话)方法从cmd提示符编译应用程序, 最好是从.bat脚本文件 我在谷歌上搜索过,但我发现的一切都是关于编译wxWidgets库的,我已经编译过了,或者是使用Visual Studio或其他IDE(如Code::Blocks)编译应用程序。我

好了,就这样。我相信这个标题描述得够多了。 我试图编译一个Hello World类应用程序,我用C++编写了WXWIDGET。 我有四个文件,让我们称它们为frame1.h、frame1.cpp、main.h和main.cpp

我只需要一个简单的(如果可能的话)方法从cmd提示符编译应用程序, 最好是从.bat脚本文件

我在谷歌上搜索过,但我发现的一切都是关于编译wxWidgets库的,我已经编译过了,或者是使用Visual Studio或其他IDE(如Code::Blocks)编译应用程序。我只想使用MinGW在命令提示符下执行此操作。我发现了一个使用回勾的方法,但Windows不支持这些方法,我甚至不知道即使有某种解决方法,它是否会起作用

我知道要求一个循序渐进的方法将是太自命不凡,但它会非常感激。当然,我知道这可能是不可能的,但我怀疑编译一个应用程序可能是火箭科学,也许我只是因为我愚蠢而错过了一些非常明显的东西

编辑:我像这样编译我的应用程序

g++ -Wall -c -o ClassFile.o ClassFile.cpp
g++ -Wall -o Program.exe ClassFile.o main.cpp
…例如。我正在寻找一种类似的方法来编译wxWidget应用程序

好的,谢谢你。
祝您好运。

如果您已经成功编译了wxWidgets,请转到
samples/minimal
子目录并键入
make-f makefile.gcc-n
。这将向您展示用于构建最小示例的命令,包括编译和链接命令必须使用的所有wxWidgets特定选项。不幸的是,如果您使用cmd.exe,您唯一的解决方案是在另一个窗口中手动复制粘贴这些选项(当然,用程序名替换“minimal”),因为您已经知道,它不支持命令替换(backticks)机制


由于这会很快变得令人厌烦,通常要做的事情是编写一个makefile,即使它只是一个非常简单的文件,其中这些选项在变量中定义,然后对所有文件重复使用。

我创建了一个关于此主题的视频 下面是一些简单的小步骤

先决条件:

  • GNUG++编译器已下载并安装

  • 将gcc/g++路径设置为环境变量

  • 下载WxWidgets二进制文件:1。头文件,2。开发文件,3。DLL

  • 然后按原样提取一个文件夹。我在D:\WxAPI文件夹中提取了它们。 看起来像: D:
    -WxAPI文件夹 -包括(头文件将此文件夹压缩为.7z) -lib(Development Files&DLL将此文件夹压缩为.7z,并将这两个摘录保存在此保存文件夹中)

  • 设置项目开发结构

    我的项目开发结构:

     WxExample (Project Folder)
         - Build (Folder) : Contains debug and release dlls and exe
             - debug (Folder) : Contains debug specific dlls and exe.
             - release (Folder) : Contains release specific dlls and exe.
         - inlcude (Folder) : Contains project header files.
         - src (Folder) : Contains project .cpp files.
         - wxCompiler.cmd : Contains compile command created with following steps.
    
    • 写编译命令

      • 链接下面的代码进行编译
    • 首先编译项目*.cpp文件: g++“\src*.cpp”

    • 指定项目输出.exe名称: -o.“\build\release\Project\u Name.exe”

    • 向g++显示Project.h文件位置: -I.“\包括”

    • 提供WxWidget.h文件: -I“D:\WxAPI\include”

    • 找到WxWidget setup.h文件: -I“D:\WxAPI\lib\gcc810\u x64\u dll\mswu”

    • 提供WxWidgets的二进制文件位置: -L“D:\WxAPI\lib\gcc810\u x64\u dll”

    • 提供编译标志: -l wxbase31u -l wxmsw31u_芯

      • 此处为D:\WxAPI\lib\gcc810\u x64\u dll\libwxbase31u。重命名为“wxbase31u”的文件 &D:\WxAPI\lib\gcc810_x64_dll\libwxmsw31u_核心。重命名为“wxmsw31u_核心”作为标志的文件

      • 您必须添加与项目中使用的文件标志类似的.h文件标志

      • 例如: -lwxmsw31u_核心-lwxbase31u-lwxtiff-lwxjpeg-LWxNG-lwxzlib-lwxregexu-lwxexpat-lkernel32-luser32-lgdi32-lwinspool-lwinmm-lshell32-lshlwapi-lcomctl32-lole32-loleaut32-luuid-lrpcrt4-ladvapi32-lversion-lwininet-loleacc-luxtheme

      • 以下是完整的命令: g++“\src*.cpp”-o.\build\release”-I“D:\WxExample\include”-I“D:\WxAPI\include”-I“D:\WxAPI\lib\gcc810\ux64\udll\mswu”-L“D:\WxAPI\lib\gcc810\ux64\udll”-L wxbase31u-L wxmsw31u\u内核

      • 运行wxWidgets.cmd即可。您的exe位于。\Build\release文件夹中

    • 在环境变量中设置WxWidget DLL路径。 如果不想将所需的dll复制粘贴到发布/调试文件夹中

    编译wxWidgets库,我已经编译了
    。那么您有目录
    \wxWidgets\lib\gcc\u dll
    \wxWidgets\lib\gcc\u lib
    ?有一个gcc\u dll目录,但没有gcc\u lib。谢谢您的回答!是的,我现在正在学习makefiles。我想我迟早会的。