(发布此问题仅供参考,我会立即回答)
如何将标题搜索路径添加到Xcode?特别是当包含这种语法时:
include <myheader.h>
Run Code Online (Sandbox Code Playgroud)
我在 macOS 10.15 上使用 Clang 10(不是 AppleClang),并尝试通过-fuse-ld=lld在 CMake flags 中指定来与 LLD 链接CMAKE_EXE_LINKER_FLAGS。
但是,当我尝试使用 LLD 时,出现以下错误:
The C++ compiler
"/Users/XXX/llvm/bin/clang++"
is not able to compile a simple test program.
It fails with the following output:
ld64.lld: warning: ignoring unknown argument: -platform_version
ld64.lld: warning: ignoring unknown argument: -search_paths_first
ld64.lld: warning: ignoring unknown argument: -headerpad_max_install_names
ld64.lld: warning: -sdk_version is required when emitting min version load command. Setting sdk version to match provided min version
ld64.lld: error: Unable to find …Run Code Online (Sandbox Code Playgroud) 我又花了 3 天时间试图让 xcode 11 与 c++20 模块一起工作。没运气。
我的机器上的 clang(最新版本的 xcode、clang、mac os)但是完全能够通过 makefile 处理模块。但是 IDE 支持似乎很糟糕,我无法让 xcode 识别和解析(同样编译)任何模块文件(无论我给它什么扩展名,我把它放在哪里,将它与它关联等等)。
一年前,我的头也撞到了墙上。
C++20 模块。我可以“今天”在 Xcode 11 中使用它们吗?
顺便说一句,我也没有运气对带有 clion 和 vscode 的模块的 IDE 支持......我感到惊讶的是,c++20 模块似乎需要很长时间才能获得支持,至少对于你自己编写的模块,而不是标准库等东西- 对我来说,这可以等待,因为它实施起来可能更复杂,并且与您自己的代码和项目的组织良好和“模块化”设计没有那么密切的关系......
无论如何,我的问题:
谢谢
编辑:只是为了证明我对这件事的痴迷,我只是读了 stroustrup a tour of c++ 2ed:(我的粗体)
标头和模块之间的差异不仅仅是句法上的。
- 一个模块只编译一次(而不是在使用它的每个翻译单元中)。
- 可以按任意顺序导入两个模块而不会改变它们的含义。
- 如果您将某些内容导入模块,则您的模块的用户不会隐式地访问(并且不会被)您导入的内容:导入不是可传递的。
对可维护性和编译时性能的影响可能是 惊人的。
我想强制Xcode使用自定义编译器(从src构建'clang-llvm'),以便可以使用clang插件。我的Xcode版本是7.3.1。