我想在我的代码中使用 std::experimental::filesystem
,这需要我使用 -lstdc++fs
和 -lc++experimental
和 Clang 进行编译。目前我有一个 makefile
和 makefile.clang
反映了编译的差异,或者我考虑过使用clang构建目标,所以我可以运行 build clang
。
是否有一些规范的方法可以在生成文件中设置特定于编译器的标志?
原文由 shians 发布,翻译遵循 CC BY-SA 4.0 许可协议
正如用户“一些程序员老兄”所提到的,GNU make 中 有条件。您可以通过这种方式轻松检查编译器版本:
给定以下源文件
test.cpp
您可以使用make CXX=g++ test
或make CXX=clang test
编译它,并且它应该将适当的标志传递给每个编译器。