问题描述
我想在 C++20 中使用新的模块功能,据我所知,gcc 和 clang 似乎都实现了足够的可用功能。
现在,基本上我在网上看到的所有代码示例都是单独编译所有模块并手动指定它们的顺序。
make
有没有办法自动查找不同模块之间的依赖关系?
我很想写一个基本上如下所示的 Makefile
:
# ...
SRC := $(find $(SRCDIR) -name "*.cpp")
OBJ := $(SRC:.cpp=.o)
PCM := $(SRC:.cpp=.pcm)
*.pcm: CXXFLAGS += -Xclang -emit-module-interface
# ...
$(EXE): $(OBJ)
$(LD) $(LDFLAGS) -o $@ $^
$(OBJ): %.o: %.cpp %.pcm
$(CXX) $(CXXFLAGS) -o $@ $<
$(PCM): %.pcm: %.cpp
$(CXX) $(CXXFLAGS) -o $@ $<
但这显然行不通,因为 make
不会按照模块需要编译的顺序进行。
所以:
- 拥有适用于 C++ 模块的通用 Makefile 的正确方法是什么?
- 是否有使用 C++ 模块和
make
的非平凡项目的好例子?
另外:
- 是否有使用 C++ 模块和
cmake
的非平凡项目的好例子?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)