Flu*_*ffy 8 mfc cmake visual-studio visual-c++
我很难在 MFC CMake 项目中打开交互式资源编辑器,否则该项目可以正常编译和运行。
\n项目文件的布局如下:
\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 CMakeLists.txt\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 inc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 <...>\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 resource.h\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 res\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 MyApp.ico\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 MyApp.rc\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 MyApp.rc2\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 src\n \xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 CMakeLists.txt\n \xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 <...>\nRun Code Online (Sandbox Code Playgroud)\n顶级 CMakeLists.txt:
\ncmake_minimum_required(VERSION 3.5)\nproject(MyProject)\n\nset(CMAKE_INCLUDE_CURRENT_DIR ON)\nset(CMAKE_CXX_STANDARD 14)\nif (MSVC)\n set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /we4715") # makes missing return as error\n set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") # parallel build\nendif()\nset(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/output)\n\n# MFC\nadd_definitions(-D_AFXDLL)\nset(CMAKE_MFC_FLAG 1)\n\nadd_subdirectory(src)\nRun Code Online (Sandbox Code Playgroud)\n源代码CMakeLists.txt:
\ninclude_directories(${CMAKE_SOURCE_DIR}/inc)\ninclude_directories(${CMAKE_SOURCE_DIR}/res)\ninclude_directories(${CMAKE_SOURCE_DIR})\n\nset(SOURCES\n <...>\n )\n\nset(HEADERS\n <...>\n )\n\nadd_executable(\n ${PROJECT_NAME}\n WIN32 \n ${SOURCES}\n ${HEADERS}\n ${CMAKE_SOURCE_DIR}/res/MyApp.rc\n ${CMAKE_SOURCE_DIR}/res/MyApp.rc2\n )\n\ninstall(TARGETS MyApp\n RUNTIME DESTINATION .)\nRun Code Online (Sandbox Code Playgroud)\n在 Visual Studio (Pro) 中,项目加载得很好,并针对我需要的每个配置进行编译,但如果我尝试打开 .rc 文件,则会收到 MFC 和 ATL 缺少标头的错误( 、 、 、afxres.h... winres.h)dde.rh。资源文件不会像在 VS 解决方案上那样在资源编辑器中打开。
双击 MyApp.rc 时会发生该消息,我得到
\n\n\n致命错误 RC1015:无法打开包含文件“afxres.h”。
\n
我使用今天可用的最新 VS 版本,即 15.8.5,在 Visual Studio 中打开 CMake 项目时会发生这种情况。
\n我已经在 Visual Studio 安装中安装了 ATL/MFC 组件。就像我说的,它编译得很好,所以依赖关系得到了正确的解决。
\n我错过了什么吗?这可能吗?
\n我有同样的问题。这似乎是 Visual Studio 中内置 CMake 支持的已知限制:https://developercommunity.visualstudio.com/t/cmake-project-cant-open-rc-file/172331
解决方法是从命令行使用 CMake 生成 Visual Studio 解决方案,然后打开它:
cmake -G "Visual Studio 16" -B build
start build/*.sln
Run Code Online (Sandbox Code Playgroud)
替换"Visual Studio 16"为您正在使用的任何版本。
| 归档时间: |
|
| 查看次数: |
1149 次 |
| 最近记录: |