【问题标题】:Windows vs code wxWidgets's #include <wx/wx.h> not foundWindows 与代码 wxWidgets 的 #include <wx/wx.h> 未找到
【发布时间】:2021-06-18 13:22:06
【问题描述】:

我使用window10和vs code来编译一些源代码。 我可以编译代码,但是当我运行 .exe 文件时。什么都没有出现。 我得到了这个错误。

我的cmakefile如下:

    cmake_minimum_required(VERSION 3.11.3)
    
    set(CMAKE_CXX_STANDARD 17)
    
    project(membot)
    set(wxWidgets_ROOT_DIR "C:/wxWidgets-3.1.4")
    set(wxWidgets_LIB_DIR "C:/wxWidgets-3.1.4/lib/gcc_dll"
        CACHE PATH "wxWidgets_LIB_DIR ")
    find_package(wxWidgets REQUIRED COMPONENTS core base)
    include(${wxWidgets_USE_FILE})
    
    file(GLOB project_SRCS src/*.cpp)
    
    add_executable(membot ${project_SRCS})
    target_link_libraries(membot ${wxWidgets_LIBRARIES})
    target_include_directories(membot PRIVATE ${wxWidgets_INCLUDE_DIRS})

我不知道如何解决它。我也尝试将路径包含在 c_cpp_properties.json 中,但仍然不起作用。

【问题讨论】:

  • 尝试在路径中使用` instead of /`。您在 Windows 上。
  • @Igor:在 CMake 脚本中,所有路径都使用正斜杠 (/) 作为路径分隔符。
  • @ZhiqiangYang:您将 WxWidgets 根目录设置为C:/wxWidgets-3.1.4。检查此目录下是否有include/wx/wx.h 文件。 (即文件的绝对路径为C:/wxWidgets-3.1.4/include/wx/wx.h。)
  • 顺便说一句,错误消息wx/wx.h: Not such file or directory编译器错误。这与您的描述相矛盾“我可以编译代码,但是当我运行 .exe 文件时。没有任何显示。我收到了这个错误。”请详细说明您何时收到此错误。

标签: c++ visual-studio-code cmake wxwidgets


【解决方案1】:

我找到了解决办法。

  1. 在cmakefile.txt中,我使用find_package(wxWidgets REQUIRED gl core base OPTIONAL_COMPONENTS net)而不是find_package(wxWidgets REQUIRED COMPONENTS core base)

我最终的cmakefile.txt是这样的

cmake_minimum_required(VERSION 3.11.3)

set(CMAKE_CXX_STANDARD 17)

project(membot)

set(wxWidgets_ROOT_DIR "C:/wxWidgets-3.1.4")
set(wxWidgets_LIB_DIR "C:/wxWidgets-3.1.4/lib/gcc_dll")
find_package(wxWidgets REQUIRED gl core base OPTIONAL_COMPONENTS net)

include(${wxWidgets_USE_FILE})

file(GLOB project_SRCS src/*.cpp)

add_executable(membot ${project_SRCS})
target_link_libraries(membot ${wxWidgets_LIBRARIES})
target_include_directories(membot PRIVATE ${wxWidgets_INCLUDE_DIRS})
  1. 参考这个https://wiki.wxwidgets.org/Compiling_wxWidgets_with_MinGW 有一个正确的 wxwidgets 构建。我使用mingw32-make -f makefile.gcc SHARED=1 UNICODE=1 BUILD=release clean 清理动态库并使用mingw32-make -f makefile.gcc SHARED=0 UNICODE=1 BUILD=release clean 清理静态库。然后我用这个mingw32-make -j8 -f makefile.gcc BUILD=release SHARED=0 UNICODE=1 VENDOR=custom 来构建静态库。
  2. 使用cmake -G "MinGW Makefiles" ..make编译源代码。成功了。

【讨论】:

    猜你喜欢
    • 2021-05-18
    • 2022-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    • 2015-08-08
    • 1970-01-01
    • 2010-12-25
    相关资源
    最近更新 更多