在 Makefile 中使用 C++ 模块

问题描述

我想在 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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...