gpt4 book ai didi

c++ - 如何使用 g++ 和 CMake 指定 gcm.cache 位置

转载 作者:行者123 更新时间:2023-12-04 17:17:06 26 4
gpt4 key购买 nike

我目前正在开发一个需要 C++20 (g++ v11) 特性和 CMake 的项目。项目树类似于以下一种:

- Top level
- src
- IO
- IO.cpp
- CMakeLists.txt
- main.cpp
- CMakeLists.txt
CMake 编译 IO 模块没有任何问题,但它以下列方式生成 gcm.cache 文件夹:
- build
- Some other CMake files and folders
- bin
- lib
- src
- IO
- gcm.cache
- IO.gcm
因此,g++ 找不到 gcm.cache 文件夹并给我这个错误:
IO: error: failed to read compiled module: No such file or directory
IO: note: compiled module file is 'gcm.cache/IO.gcm'
IO: note: imports must be built before being imported
IO: fatal error: returning to the gate for a mechanical issue
如果有人告诉我有一种方法可以使用 CMake 指定 gcm.cache 位置或强制 CMake 递归搜索 gcm 文件或告诉它创建顶级 gcm.cache 并将所有内容存储在其中,我将不胜感激。由于 C++20 文档很糟糕,我在任何地方都找不到任何答案。提前致谢...

最佳答案

我遇到了完全相同的问题,但没有真正找到解决方案就找到了解决方法。找到完整代码 here .
简而言之,我创建了一个符号链接(symbolic link),以便子项目都使用位于项目根目录中的 gcm.cache/目录。像这样创建一个符号链接(symbolic link):

ln -fs ../gcm.cache gcm.cache
这是项目的目录树:
.
├── engine
│   ├── core
│   │   └── types.cpp
│   ├── engine.cpp
│   ├── gcm.cache -> ../gcm.cache
│   ├── Makefile
│   └── memory
├── gcm.cache
├── init.sh
├── Makefile
└── testgame
├── gamelib.cpp
├── gcm.cache -> ../gcm.cache
├── Makefile
└── test.cpp
所以当 gcc 构建 enginetestgame项目它实际上使用根目录中的 gcm.cache/。在出现更好的东西之前,这是我的首选方法。

关于c++ - 如何使用 g++ 和 CMake 指定 gcm.cache 位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68451442/

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