YouCompleteMe是一个很棒的 C++ vim 插件,但是,它需要用户提供的.ycm_extra_conf.py
脚本来返回每个 C/C++ 源代码的编译器标志。
目前我有一个基于 CMake 的 C++ 项目,我想使用这个插件来简化我的开发,然后我需要编写.ycm_extra_conf.py
脚本以编程方式找出每个源文件的编译器标志。
所以我的问题是,有没有办法通过查看构建目录以编程方式找出每个源的编译器标志,因为我已经运行了 cmake 并生成了一堆文件。
YouCompleteMe是一个很棒的 C++ vim 插件,但是,它需要用户提供的.ycm_extra_conf.py
脚本来返回每个 C/C++ 源代码的编译器标志。
目前我有一个基于 CMake 的 C++ 项目,我想使用这个插件来简化我的开发,然后我需要编写.ycm_extra_conf.py
脚本以编程方式找出每个源文件的编译器标志。
所以我的问题是,有没有办法通过查看构建目录以编程方式找出每个源的编译器标志,因为我已经运行了 cmake 并生成了一堆文件。
不会有通用的解决方案,因为 CMake 可以为不同的平台和程序生成构建解决方案,例如 Makefile 与 Visual Studio 项目。
对于 Makefile 生成器,您可以尝试在 CMakeFiles/CMakeDirectoryInformation.cmake 文件中或直接从 Makefile 中查找相关信息。但这可能不是一个非常可靠的解决方案,因为这些文件是 Makefile 生成器的内部文件,并且可能会随着每个 CMake 版本而改变。
Eclipse 使用的解决方案是解析编译器调用的输出以获取包含标志等。这可能更可靠一些。对于 Makefile,您可以通过使用 VERBOSE=1 作为环境或调用变量进行编译来启用完整输出。