在Windows XP下从提示符编译带有MinGW的wxWidgets应用程序

时间:2013-03-29 23:56:12

标签: compilation cmd mingw wxwidgets

嗯,就是这样。我确信这个标题足够描述。 我正在尝试使用wxWidgets编译一个用C ++编写的hello world类型的应用程序。 我有四个文件,我们称之为frame1.h,frame1.cpp,main.h和main.cpp。

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

我用Google搜索了,但我发现的一切都是关于编译我已经做过的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应用程序。

好的,谢谢。 祝你好运。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

我制作了一个关于此主题的视频https://www.youtube.com/watch?v=f6FDNR3lh8E 以下是要遵循的小而简单的步骤。

先决条件:

  1. 下载并安装了 GNU g++ 编译器。

  2. 将 gcc/g++ 路径设置为环境变量。

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

  4. 然后按原样提取一个文件夹。我已将它们解压缩到 D:\WxAPI 文件夹中。 看起来像 : D:
    - WxAPI 文件夹 - 包含(头文件将此文件夹压缩为 .7z) - lib(开发文件和 DLL 将此文件夹压缩在 .7z 中,并且两个提取物都在此保存文件夹中)

  5. 设置您的项目开发结构。

    我的项目开发结构:

     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.
    
  • 写入编译命令

    • 链接以下进行编译。
    1. 首先编译项目 *.cpp 文件: g++ ".\src*.cpp"

    2. 给出项目输出 .exe 名称: -o ".\build\release\Project_Name.exe"

    3. 向 g++ 显示项目 .h 文件位置: -I ".\include"

    4. 提供 WxWidget .h 文件: -I "D:\WxAPI\include"

    5. 找到 WxWidget setup.h 文件: -I "D:\WxAPI\lib\gcc810_x64_dll\mswu"

    6. 提供 WxWidgets 的二进制文件位置: -L "D:\WxAPI\lib\gcc810_x64_dll"

    7. 提供编译标志: -l wxbase31u -l wxmsw31u_core

    • 这里 D:\WxAPI\lib\gcc810_x64_dll\libwxbase31u.a 文件重命名为“wxbase31u” & D:\WxAPI\lib\gcc810_x64_dll\libwxmsw31u_core.a 文件重命名为“wxmsw31u_core”作为标志。

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

    • 例如: -lwxmsw31u_core -lwxbase31u -lwxtiff -lwxjpeg -lwxpng -lwxzlib -lwxregexu -lwxexpat -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lsautlhlwlapi -lshell32 -lsautlhlwlpi -loleacc -luxtheme

    • 这是完整的命令: g++ ".\src*.cpp" -o ".\build\release" -I "D:\WxExample\include" -I "D:\WxAPI\include" -I "D:\WxAPI\lib\gcc810_x64_dll\ mswu" -L "D:\WxAPI\lib\gcc810_x64_dll" -l wxbase31u -l wxmsw31u_core

    • 运行 wxWidgets.cmd,就是这样。您的 exe 在您的 .\Build\release 文件夹中。

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