Makefile 编译wxWidgets时出错

Makefile 编译wxWidgets时出错,makefile,codeblocks,wxwidgets,Makefile,Codeblocks,Wxwidgets,我将按照教程从使用wxWidgets的代码::块开始 完成本教程后,我的第一步是: cd C:\wxWidgets-3.0.3\build\msw 由于我在目录C:\Program Files\CodeBlocks\MinGW\bin中安装了mingw32 make.exe,接下来我将执行以下操作(同样基于教程): 我得到的结果是: gcc -c -o gcc_mswu\wxregex_regcomp.o -O2 -mthreads -DHAVE_W32API_H -DNDEBUG -I

我将按照教程从使用wxWidgets的代码::块开始

完成本教程后,我的第一步是:

cd C:\wxWidgets-3.0.3\build\msw
由于我在目录C:\Program Files\CodeBlocks\MinGW\bin中安装了mingw32 make.exe,接下来我将执行以下操作(同样基于教程):

我得到的结果是:

gcc -c -o gcc_mswu\wxregex_regcomp.o  -O2 -mthreads  -DHAVE_W32API_H -DNDEBUG -I
..\..\include -I..\..\lib\gcc_lib\mswu -D__WXMSW__  -D_UNICODE   -MTgcc_mswu\wxr
egex_regcomp.o -MFgcc_mswu\wxregex_regcomp.o.d -MD -MP ../../src/regex/regcomp.c

gcc: error: CreateProcess: No such file or directory
makefile.gcc:5702: recipe for target 'gcc_mswu\wxregex_regcomp.o' failed
mingw32-make: *** [gcc_mswu\wxregex_regcomp.o] Error 1
我想找不到gcc,所以我需要编辑makefile.gcc

我说得对吗


我不习惯制作文件,所以,很抱歉,我需要一些帮助

打开一个命令框并
cd C:\wxWidgets-3.0.3\build\msw
键入并按enter键:
PATH=%PATH%;C:\Program Files\CodeBlocks\MinGW\bin

这将把mingw所需的文件(它们以链接方式执行)添加到您的路径中,仅用于命令框。如果希望它是永久性的,请在Windows设置中修改
PATH
environment var

现在运行命令编译wxWidgets:
mingw32 make“-f makefile.gcc BUILD=release SHARED=0 monothetical=1 UNICODE=1 cxflags=“-std=gnu++11”
如果您的mingw版本使用gcc>=5.2,则默认使用
std=gnu+11
标志(不需要)。无论如何,使用它是无害的

添加
RUNTIME\u LIBS=static
可以避免在路径上看到几个mingw LIBS。这样,您就可以在不提供这些LIBS的情况下运行应用程序。
也许你会收到无数关于“弃用”的警告(而不是错误)“最好的尺寸。这是一个gcc,您不需要编辑makefile。在你的
路径中是否有
C:\program Files\CodeBlocks\MinGW\bin\gcc
C:\program Files\CodeBlocks\MinGW\bin
这样的程序,这样
gcc
就会在那里找到?@MikeKinghan,正如你在我的问题中看到的错误报告:“gcc:error:CreateProcess:没有这样的文件或目录”所以gcc存在,但找不到文件或目录。我不知道文件或目录是哪一个。@user8254640,您能发布$PATH变量的内容吗?@MikeKinghan,我误解了您之前的评论。您告诉我将路径设置为C:\Program Files\CodeBlocks\MinGW\bin。现在我做了,我要做编译。让我们看看我能做些什么。不,检查
C:\Program Files\CodeBlocks\MinGW\bin
是否在
PATH
中,如果没有,除了Rip2所说的:最好使用
BUILD=debug
编译,以便能够单独使用wxWidgets调试代码。准确地说,
BUILD=debug
允许在wxWidgets代码内部进行调试。@Rip2,同意。另外,您为什么建议
单片=1 UNICODE=1
。后者在默认情况下应该是打开的-它是3.0,不建议使用前者,因为它通常会产生问题。@Igor我只是复制了OP的大部分命令<代码>UNICODE=1
是wx3.0的默认值是。我不喜欢
MONOLITIC=1
,因为它会大大降低应用程序的编译速度,但对初学者来说更容易,添加到项目中的libs更少。@Rip2,好的,我现在明白了。奇怪的是,人们试图编译这个库,却不完全知道/理解每个选项对他们有什么帮助。
gcc -c -o gcc_mswu\wxregex_regcomp.o  -O2 -mthreads  -DHAVE_W32API_H -DNDEBUG -I
..\..\include -I..\..\lib\gcc_lib\mswu -D__WXMSW__  -D_UNICODE   -MTgcc_mswu\wxr
egex_regcomp.o -MFgcc_mswu\wxregex_regcomp.o.d -MD -MP ../../src/regex/regcomp.c

gcc: error: CreateProcess: No such file or directory
makefile.gcc:5702: recipe for target 'gcc_mswu\wxregex_regcomp.o' failed
mingw32-make: *** [gcc_mswu\wxregex_regcomp.o] Error 1