0

您好,我正在尝试构建 wxWidgets 3.0 以用于代码块。当我运行手册上给出的命令时

mingw32-make -f makefile.gcc BUILD=release SHARED=1 MONOLITHIC=1 UNICODE=1 CXXFLAGS=-fno-keep-inline-dllexport

它说一个错误包括 \include/setup/.h:121:27: fatal error: ../../../lib/vc_x64_lib/mswu/wx/setup.h

它还说

C:\wxWidgets-3.0.4\build\msw>mingw32-make -f makefile.gcc BUILD=release SHARED=1 MONOLITHIC=1 UNICODE=1 CXXFLAGS=-fno-keep-inline-dllexport
if not exist ..\..\lib\gcc_dll\mswu mkdir ..\..\lib\gcc_dll\mswu
gcc -c -o gcc_mswudll\wxregex_regcomp.o  -O2 -mthreads  -DHAVE_W32API_H -DNDEBUG -I..\..\include -I..\..\lib\gcc_dll\mswu -D__WXMSW__  -D_UNICODE   -MTgcc_mswudll\wxregex_regcomp.o -MFgcc_mswudll\wxregex_regcomp.o.d -MD -MP ../../src/regex/regcomp.c
In file included from ..\..\include/wx/platform.h:183:0,
                 from ..\..\include/wx/defs.h:27,
                 from ../../src/regex/regcustom.h:39,
                 from ../../src/regex/regguts.h:38,
                 from ../../src/regex/regcomp.c:33:
..\..\include/wx/setup.h:12:6: error: #error "This file should only be included when using Microsoft Visual C++"
     #error "This file should only be included when using Microsoft Visual C++"
      ^
In file included from ..\..\include/wx/version.h:16:0,
                 from ..\..\include/wx/setup.h:19,
                 from ..\..\include/wx/platform.h:183,
                 from ..\..\include/wx/defs.h:27,
                 from ../../src/regex/regcustom.h:39,
                 from ../../src/regex/regguts.h:38,
                 from ../../src/regex/regcomp.c:33:
..\..\include/wx/setup.h:113:31: error: pasting "/" and "vc_x64_lib" does not give a valid preprocessing token
         wxCONCAT6(../../../lib/, wxLIB_SUBDIR, /, wxTOOLKIT_PREFIX, wxSUFFIX, /wx/setup.h)

我正在关注的手册是:http ://wiki.codeblocks.org/index.php?title=WxWindowsQuickRef

4

2 回答 2

1

您必须手动复制该文件include/msvc/wx/setup.hinclude/wx/setup.h该文件没有其他解释。您不能这样做,现在您需要删除您创建的文件并撤消您可能为构建工作所做的任何其他更改。

于 2018-10-09T12:42:43.417 回答
0

如果您尝试的任何方法仍然出现错误,请按照以下说明操作:

  1. 在您的情况下,删除整个 wxWidgets 文件夹 C:\wxWidgets-3.0.4

  2. 重新安装 wxWidgets,即使在同一个目录中

  3. 删除与旧 gcc 相关的任何内容(可能是目录和 PATH 变量,见下文),然后下载安装更新版本的 gcc。来自Mingw 32 mingw-get-setup.exe,来自Mingw 64或来自TDM 组合 32/64。稍后,您需要将此编译器设置为 C::B 的默认编译器,以供您的应用使用。

  4. 如果需要,将您的mingw/bin目录添加到 Windows PATH 环境变量。

  5. 打开命令框窗口并复制并粘贴此行:

    mingw32-make -f makefile.gcc BUILD=release UNICODE=1 USE_OPENGL=1 CXXFLAGS="-std=gnu++11 -fno-keep-inline-dllexport"

注意我删除了 MONOLITHIC=1 标志,有时它是问题的根源。唯一的后果是您必须在项目设置中添加一些库(基础库、核心库等,并以正确的顺序),而不是仅添加一个大库。看一眼<wxWidgets dir>\lib

添加mingw\bin到 PATH 是一个选项。C::B 不需要它。需要它的是命令框。如果您不想污染 PATH 变量,那么每次打开命令框以使用编译器时都必须添加它: 在此命令框中使用编译器之前
执行PATH=%PATH%;C:\MinGW\bin(其中 MinGW 是您安装编译器的位置)。

于 2018-10-09T00:10:34.353 回答