是否可以将 Clang libtooling 与其他编译器一起使用?
Is it possible to use Clang libtooling with other compilers?
我们有一个针对多种平台的产品。其中一些平台的编译使用的是 MSVC 而不是 clang。
我们正在使用 clang libtooling 接口,我们在其中提供了一个 compile_commands.json 文件来指示如何编译每个翻译单元。 clang 如何使用提供的 compile_commands.json 信息?它是否使用所有标志,但 运行 通过它自己的编译器?是否可以将 libtooling 与具有 MSVC 编译说明的 compile_commands.json 一起使用?我们针对每个平台的 compile_commands.json 是由我们的内部构建系统创建的,类似于 cmake 生成它的方式。
Does it use all the flags, but run it through its own compiler?
是的,它 运行 的词法和语法分析就像您直接使用所有这些标志执行 clang
一样。
Is it possible to use libtooling with a compile_commands.json having instructions on MSVS compilation?
当 运行 为 clang-cl.exe
或传递 --driver-mode=cl
标志时,Clang 可以模仿 MSVC cl.exe
。因此,如果您的命令行包含 cl.exe
样式标志(如 /MD
和 /Z7
),理论上也应该可以使用 libtooling。
我们有一个针对多种平台的产品。其中一些平台的编译使用的是 MSVC 而不是 clang。
我们正在使用 clang libtooling 接口,我们在其中提供了一个 compile_commands.json 文件来指示如何编译每个翻译单元。 clang 如何使用提供的 compile_commands.json 信息?它是否使用所有标志,但 运行 通过它自己的编译器?是否可以将 libtooling 与具有 MSVC 编译说明的 compile_commands.json 一起使用?我们针对每个平台的 compile_commands.json 是由我们的内部构建系统创建的,类似于 cmake 生成它的方式。
Does it use all the flags, but run it through its own compiler?
是的,它 运行 的词法和语法分析就像您直接使用所有这些标志执行 clang
一样。
Is it possible to use libtooling with a compile_commands.json having instructions on MSVS compilation?
当 运行 为 clang-cl.exe
或传递 --driver-mode=cl
标志时,Clang 可以模仿 MSVC cl.exe
。因此,如果您的命令行包含 cl.exe
样式标志(如 /MD
和 /Z7
),理论上也应该可以使用 libtooling。