【问题标题】:setup.h no such file or directorysetup.h 没有这样的文件或目录
【发布时间】:2019-03-13 15:32:00
【问题描述】:

您好,我正在尝试构建 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

【问题讨论】:

  • 您是否只是发布了您的显示器照片而不是复制文本?
  • 当我试图发帖时,我的手机出现了很多错误。现在修复它
  • 我敢肯定,您所做的不仅仅是该 wiki 中所说的。也许您首先使用makefile.vc 而不是makefile.gcc。删除 ....lib\gcc_dll\mswu...build\msw\gcc_whatever 并重试。
  • 仍然报同样的错误
  • 很奇怪。将include/wx/msw/setup0.h 复制到include/wx/msw/setup.h。然后删除我发布的目录。然后再次执行命令行,我会添加指令CXXFLAGS="-std=gnu++11"

标签: c++ codeblocks wxwidgets wxformbuilder


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    1. 根据您的情况删除整个 wxWidgets 文件夹 C:\wxWidgets-3.0.4

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

    3. 删除与旧 gcc 相关的任何内容(可能是目录和 PATH 变量,见下文),并下载安装更新版本的 gcc。来自Mingw 32 mingw-get-setup.exe, 来自Mingw 64 或来自TDM combined 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 是您安装编译器的位置)。

    【讨论】:

    • 好的,它构建得很好,但是当我尝试在代码块上运行 wx 小部件模板时,它说||=== Build: Debug in hey well (compiler: GNU GCC Compiler) ===| C:\wxWidgets-3.1.1\include\wx\platform.h|148|fatal error: wx/setup.h: No such file or directory| ||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
    • 这是另一个问题,需要另一个问题来指定您在 CB 的 wxWidgets 模板中执行/选择的所有步骤和选项。还要说 CB 版本。
    • 伙计,谢谢你的帮助,我会创建另一个问题
    猜你喜欢
    • 2018-08-03
    • 2010-09-13
    • 2021-06-24
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多