gpt4 book ai didi

c++ - 使用gcc-11构建c++20模块时如何修改gcm.cache路径?

转载 作者:行者123 更新时间:2023-12-02 18:30:01 24 4
gpt4 key购买 nike

我试图让 xmake支持 gcc-11 构建 c++20 模块,但我遇到了一些问题。

gcc-11默认会在当前目录生成gcm.cache目录。如何将此默认路径修改为指定的其他目录?

我知道clang有一个-fmodules-cache-path=选项可以修改模块的缓存路径,但是我没有找到gcc的类似选项。

有人知道吗?谢谢

最佳答案

这对我在 ubuntu 22.04 上的 gcc-11 有效(Makefile 片段):

MAPPER_DIR := /path/to/obj/dir

CXXFLAGS += -fmodules-ts '-fmodule-mapper=|@g++-mapper-server -r'$(MAPPER_DIR)

我遇到的警告是 g++-mapper-server 不会创建根目录,因此请确保先创建它。您仍然需要解决依赖关系,以便在编译导入代码之前创建/更新 gcm。


解释是 | 通过管道调用映射器进程,@ 从 gcc 工具目录(cf gcc manual)解析进程名称。 -r 选项设置根目录。在 make 和 shell 中注意保护空格和 |

默认的映射器服务器接受参数——你可以调整和使用它——这是我的版本的选项:

$ /usr/lib/gcc/x86_64-linux-gnu/11/g++-mapper-server --help
Usage: g++-mapper-server [OPTION...] [CONNECTION] [MAPPINGS...]

C++ Module Mapper.

-a, --accept Netmask to accept from
-f, --fallback Use fallback for missing mappings
-h, --help Print this help, then exit
-n, --noisy Print progress messages
-1, --one One connection and then exit
-r, --root DIR Root compiled module directory
-s, --sequential Process connections sequentially
-v, --version Print version number, then exit
Send SIGTERM(15) to terminate

For bug reporting instructions, please see:
<file:///usr/share/doc/gcc-11/README.Bugs>.

关于c++ - 使用gcc-11构建c++20模块时如何修改gcm.cache路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69549286/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com