1

嗯,就是这样。我相信标题已经足够描述了。我正在尝试使用 wxWidgets 编译我用 C++ 编写的 hello world 类型的应用程序。我有四个文件,我们称它们为 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 应用程序。

嗯,谢谢。祝你好运。

4

2 回答 2

1

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

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

于 2013-03-30T10:57:44.813 回答
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. Give Project Output .exe Name : -o ".\build\release\Project_Name.exe"

    3. Show Project .h File Location to g++ : -I ".\include"

    4. Provide WxWidget .h Files : -I "D:\WxAPI\include"

    5. Locate WxWidget setup.h File : -I "D:\WxAPI\lib\gcc810_x64_dll\mswu"

    6. Supply Binaries Location of WxWidgets : -L "D:\WxAPI\lib\gcc810_x64_dll"

    7. Provide Compile Flags : -l wxbase31u -l wxmsw31u_core

    • Here D:\WxAPI\lib\gcc810_x64_dll\libwxbase31u.a File Renamed To "wxbase31u" & D:\WxAPI\lib\gcc810_x64_dll\libwxmsw31u_core.a File Renamed To "wxmsw31u_core" as flag.

    • You have to add similar file flag as you used in your project as .h

    • For Example : -lwxmsw31u_core -lwxbase31u -lwxtiff -lwxjpeg -lwxpng -lwxzlib -lwxregexu -lwxexpat -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lshlwapi -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lversion -lwsock32 -lwininet -loleacc -luxtheme

    • Here is Full Command : 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

    • Run wxWidgets.cmd and that's it. Your exe is in your .\Build\release folder.

    1. Set WxWidget DLL path in Enviroment Variable. If you do not want to copy paste required dll to your release/debug folder.
于 2021-03-19T14:50:20.457 回答