WxWidgets - 使用 mingw32-exe dll、mingw64 构建时出错

问题描述 投票:0回答:1

我正在尝试从 cmd 行使用 MinGW64 g++ 构建 WxWidgets 3.2.4。 下载源代码后,我按照构建说明(“...\docs\mswinstall.md”)进行操作,其中指出:

### Using makefiles from Windows command line

The `makefile.gcc` makefiles are for compilation using MinGW using Windows
command interpreter (`cmd.exe`), they will *not* work if you use Unix
shell, as is the case with MSYS. Follow the instructions for using configure
above instead if you prefer to use Unix shell. The commands shown here must be
executed from a DOS command line window (cmd.exe, *not* Bash sh.exe).

1. Change directory to `%%WXWIN%\build\msw` and type

        > mingw32-make -f makefile.gcc

   to build wxWidgets in the default debug configuration as a static
   library. Add "BUILD=release" and/or "SHARED=1" to build the library
   in release configuration and/or as a shared library instead of the
   default static one, see [Make Parameters](#msw_build_make_params)
   for more details.

我在 cmd 行中得到了相当长的输出(稍后在消息中报告),其结尾为:

如果存在..\..\lib\gcc_dll\libwxregexu.a del ..\..\lib\gcc_dll\libwxregexu.a

ar rcu ..\..\lib\gcc_dll\libwxregexu.a @..\..\lib\gcc_dll\libwxregexu.a.rsp

ar: file "@../../lib/gcc_dll/libwxregexu.a.rsp": 系统找不到指定的路径。

mingw32-make: *** [makefile.gcc:5364: ..\..\lib\gcc_dll\libwxregexu.a] 错误 1

我运行的 build 命令是:

C:\SwDev\WxWidgets _3.2.4 uild\msw>%MINGW64_v13_2_0_r1%\mingw32-make -f makefile.gcc BUILD=release SHARED=1

其中环境变量 MINGW64_v13_2_0_r1 指向 MinGW64 文件夹(“C:\SwDev\MinGW_w64\Ver_13.2.0_Rev_1\mingw64 in”)。

在“

makefile.gcc”中,报告错误的行(第5364行)如下:

5360 $(LIBDIRNAME)\libwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).a: $(WXREGEX_OBJECTS) 5361 $(foreach f,$(subst \,/,$(WXREGEX_OBJECTS)),$(shell echo $f >> $(subst \,/,$@).rsp.tmp)) 5362 @move /y [email protected] [email protected] >nul 5363 if exist $@ del $@ 5364 ar rcu $@ @[email protected] 5365 @-del [email protected] 5366 ranlib $@
整个构建消息是:

C:\SwDev\WxWidgets\v_3.2.4\build\msw>%MINGW64_v13_2_0_r1%\mingw32-make -f makefile.gcc BUILD=release SHARED=1 if not exist gcc_mswudll mkdir gcc_mswudll if not exist ..\..\lib\gcc_dll mkdir ..\..\lib\gcc_dll if not exist ..\..\lib\gcc_dll\mswu mkdir ..\..\lib\gcc_dll\mswu if not exist ..\..\lib\gcc_dll\mswu\wx mkdir ..\..\lib\gcc_dll\mswu\wx if not exist ..\..\lib\gcc_dll\mswu\wx\setup.h copy ..\..\include\wx\msw\setup.h ..\..\lib\gcc_dll\mswu\wx\setup.h 1 file(s) copied. if not exist ..\..\lib\gcc_dll\mswu\wx\msw mkdir ..\..\lib\gcc_dll\mswu\wx\msw gcc -E "..\..\include\wx\msw\genrcdefs.h" > "..\..\lib\gcc_dll\mswu\wx\msw\rcdefs.h" gcc -c -o gcc_mswudll\wxregex_pcre2_auto_possess.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_auto_possess.o -MFgcc_mswudll\wxregex_pcre2_auto_possess.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_auto_possess.c gcc -c -o gcc_mswudll\wxregex_pcre2_compile.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_compile.o -MFgcc_mswudll\wxregex_pcre2_compile.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_compile.c gcc -c -o gcc_mswudll\wxregex_pcre2_config.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_config.o -MFgcc_mswudll\wxregex_pcre2_config.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_config.c gcc -c -o gcc_mswudll\wxregex_pcre2_context.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_context.o -MFgcc_mswudll\wxregex_pcre2_context.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_context.c gcc -c -o gcc_mswudll\wxregex_pcre2_convert.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_convert.o -MFgcc_mswudll\wxregex_pcre2_convert.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_convert.c gcc -c -o gcc_mswudll\wxregex_pcre2_dfa_match.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_dfa_match.o -MFgcc_mswudll\wxregex_pcre2_dfa_match.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_dfa_match.c gcc -c -o gcc_mswudll\wxregex_pcre2_error.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_error.o -MFgcc_mswudll\wxregex_pcre2_error.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_error.c gcc -c -o gcc_mswudll\wxregex_pcre2_extuni.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_extuni.o -MFgcc_mswudll\wxregex_pcre2_extuni.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_extuni.c gcc -c -o gcc_mswudll\wxregex_pcre2_find_bracket.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_find_bracket.o -MFgcc_mswudll\wxregex_pcre2_find_bracket.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_find_bracket.c gcc -c -o gcc_mswudll\wxregex_pcre2_jit_compile.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_jit_compile.o -MFgcc_mswudll\wxregex_pcre2_jit_compile.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_jit_compile.c gcc -c -o gcc_mswudll\wxregex_pcre2_maketables.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_maketables.o -MFgcc_mswudll\wxregex_pcre2_maketables.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_maketables.c gcc -c -o gcc_mswudll\wxregex_pcre2_match.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_match.o -MFgcc_mswudll\wxregex_pcre2_match.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_match.c gcc -c -o gcc_mswudll\wxregex_pcre2_match_data.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_match_data.o -MFgcc_mswudll\wxregex_pcre2_match_data.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_match_data.c gcc -c -o gcc_mswudll\wxregex_pcre2_newline.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_newline.o -MFgcc_mswudll\wxregex_pcre2_newline.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_newline.c gcc -c -o gcc_mswudll\wxregex_pcre2_ord2utf.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_ord2utf.o -MFgcc_mswudll\wxregex_pcre2_ord2utf.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_ord2utf.c gcc -c -o gcc_mswudll\wxregex_pcre2_pattern_info.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_pattern_info.o -MFgcc_mswudll\wxregex_pcre2_pattern_info.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_pattern_info.c gcc -c -o gcc_mswudll\wxregex_pcre2_script_run.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_script_run.o -MFgcc_mswudll\wxregex_pcre2_script_run.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_script_run.c gcc -c -o gcc_mswudll\wxregex_pcre2_serialize.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_serialize.o -MFgcc_mswudll\wxregex_pcre2_serialize.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_serialize.c gcc -c -o gcc_mswudll\wxregex_pcre2_string_utils.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_string_utils.o -MFgcc_mswudll\wxregex_pcre2_string_utils.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_string_utils.c gcc -c -o gcc_mswudll\wxregex_pcre2_study.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_study.o -MFgcc_mswudll\wxregex_pcre2_study.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_study.c gcc -c -o gcc_mswudll\wxregex_pcre2_substitute.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_substitute.o -MFgcc_mswudll\wxregex_pcre2_substitute.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_substitute.c gcc -c -o gcc_mswudll\wxregex_pcre2_substring.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_substring.o -MFgcc_mswudll\wxregex_pcre2_substring.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_substring.c gcc -c -o gcc_mswudll\wxregex_pcre2_tables.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_tables.o -MFgcc_mswudll\wxregex_pcre2_tables.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_tables.c gcc -c -o gcc_mswudll\wxregex_pcre2_ucd.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_ucd.o -MFgcc_mswudll\wxregex_pcre2_ucd.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_ucd.c gcc -c -o gcc_mswudll\wxregex_pcre2_valid_utf.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_valid_utf.o -MFgcc_mswudll\wxregex_pcre2_valid_utf.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_valid_utf.c gcc -c -o gcc_mswudll\wxregex_pcre2_xclass.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_xclass.o -MFgcc_mswudll\wxregex_pcre2_xclass.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_xclass.c gcc -c -o gcc_mswudll\wxregex_pcre2_chartables.o -O2 -mthreads -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -I..\..\3rdparty\pcre\src\wx -D__WX__ -DHAVE_CONFIG_H -D_UNICODE -MTgcc_mswudll\wxregex_pcre2_chartables.o -MFgcc_mswudll\wxregex_pcre2_chartables.o.d -MD -MP ../../3rdparty/pcre/src/pcre2_chartables.c if exist ..\..\lib\gcc_dll\libwxregexu.a del ..\..\lib\gcc_dll\libwxregexu.a ar rcu ..\..\lib\gcc_dll\libwxregexu.a @..\..\lib\gcc_dll\libwxregexu.a.rsp ar: file "@../../lib/gcc_dll/libwxregexu.a.rsp": The system cannot find the path specified. mingw32-make: *** [makefile.gcc:5364: ..\..\lib\gcc_dll\libwxregexu.a] Error 1
我严格按照说明进行操作,但无法解决问题。 MinGW64已从GitHub下载(“https://github.com/niXman/mingw-builds-binaries/releases”),版本为13.2.0-rev1:

C:\SwDev\WxWidgets_3.2.4 uild\msw>%MINGW64_v13_2_0_r1%\g++ --version

g++(x86_64-win32-seh-rev1,由 MinGW-Builds 项目构建)13.2.0

版权所有 (C) 2023 Free Software Foundation, Inc.

我也尝试过版本12,但遇到了同样的错误。

当我搜索未找到的路径(“@../../lib/gcc_dll/libwxregexu.a.rsp”)时,它存在并位于“...\lib\gcc_dll”。

我没有使用 make 进行构建的经验,并且我无法从输出中得到要点。我想知道问题是否来自编译器,但我找不到理解它的方法。

有人遇到过这个问题,或者对这个问题有建议/解释吗?

提前致谢。

build wxwidgets mingw32 msw
1个回答
0
投票
发现问题。我有多个 ar.exe,它们在上面失败的构建中被调用(发现写作

哪里

在命令行中)。

为了解决这个问题,打开cmd.exe后,我设置了MinGW的路径,然后按照说明运行构建,如下:

C:>在

中设置 PATH=C:\SwDev\MinGW\x64 _13.2.0\mingw64

C:>回显%PATH%

C:\SwDev\MinGW\x64 _13.2.0\mingw64 中

C:>cd C:\SwDev\WxWidgets_3.2.4 uild\msw

C:\SwDev\WxWidgets _3.2.4 uild\msw>mingw32-make -f makefile.gcc SHARED=1 BUILD=release

这样就可以正常使用了。

© www.soinside.com 2019 - 2024. All rights reserved.