首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Windows和cmake上使用ccache > 4.6.1?

如何在Windows和cmake上使用ccache > 4.6.1?
EN

Stack Overflow用户
提问于 2022-07-01 12:46:03
回答 1查看 571关注 0票数 4

4.6.1版开始,ccache支持用msvc编译。

在我的Windows环境中,我已经通过命令行安装并可用ccache。我试图通过以下方式将ccache集成到我的cmake项目中:

根CMakeLists.txt:

代码语言:javascript
运行
复制
find_program(CCACHE_FOUND ccache) 
if(CCACHE_FOUND)
    message("CCACHE is found")
    set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
    set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) # Less useful to do it for linking, see edit2
else(CCACHE_FOUND)
    message("CCACHE is NOT found")
endif(CCACHE_FOUND)

下面是我在CMakePresets.json中的cmake配置:

代码语言:javascript
运行
复制
{
"name": ",
"hidden": false,
"generator": "Visual Studio 17 2022",
"toolset": {
"value": "host=x64",
"strategy": "external"
},
"architecture": {
"value": "x64",
"strategy": "external"
},
"cacheVariables": {
"CMAKE_C_COMPILER": "cl.exe",
"CMAKE_CXX_COMPILER": "cl.exe",
"CMAKE_INSTALL_PREFIX": "${sourceDir}/out/install/${presetName}",
"CMAKE_TOOLCHAIN_FILE": {
value": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",
"type": "FILEPATH"
},
"VCPKG_INSTALLED_DIR": "${sourceDir}/build/packages",
"VCPKG_TARGET_TRIPLET": "x64-windows-static-md"
},
"vendor": { "microsoft.com/VisualStudioSettings/CMake/1.0": { "hostOS": [ "Windows" ] } }
}

在运行构建时,我可以看到ccache被找到了,但我没有看到任何迹象表明它可以工作或由构建系统调用。

运行ccache -s会显示每个stat为0,就好像没有调用ccache一样。

问题:

  • 如何使用MSVC & cmake正确配置ccache?
  • 如何确保ccache正常工作并且构建系统正在使用正确的命令?我是否可以为cmake / ccache提供“详细”选项来调试这个选项?
EN

回答 1

Stack Overflow用户

发布于 2022-08-01 01:11:29

<LANG>_COMPILER_LAUNCHER属性不适用于Visual生成器。根据文档,它只适用于Makefile和Ninja生成器:LAUNCHER.html

指定一个分号分隔列表,其中包含编译器启动工具的命令行.Makefile生成器和Ninja生成器将运行此工具,并将编译器及其参数传递给该工具。一些示例工具是distcc和ccache。

要使它正常工作,您需要在配置CMake项目时指定生成器。

cmake -S C:\project\src -B C:\project\build -G "Ninja"

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72829476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档