Compilation 在Windows XP下使用MinGW从提示符编译wxWidgets应用程序
好了,就这样。我相信这个标题描述得够多了。 我试图编译一个Hello World类应用程序,我用C++编写了WXWIDGET。 我有四个文件,让我们称它们为frame1.h、frame1.cpp、main.h和main.cpp 我只需要一个简单的(如果可能的话)方法从cmd提示符编译应用程序, 最好是从.bat脚本文件 我在谷歌上搜索过,但我发现的一切都是关于编译wxWidgets库的,我已经编译过了,或者是使用Visual Studio或其他IDE(如Code::Blocks)编译应用程序。我只想使用MinGW在命令提示符下执行此操作。我发现了一个使用回勾的方法,但Windows不支持这些方法,我甚至不知道即使有某种解决方法,它是否会起作用 我知道要求一个循序渐进的方法将是太自命不凡,但它会非常感激。当然,我知道这可能是不可能的,但我怀疑编译一个应用程序可能是火箭科学,也许我只是因为我愚蠢而错过了一些非常明显的东西 编辑:我像这样编译我的应用程序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)编译应用程序。我
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,即使它只是一个非常简单的文件,其中这些选项在变量中定义,然后对所有文件重复使用。我创建了一个关于此主题的视频 下面是一些简单的小步骤 先决条件:
-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。我想我迟早会的。