专栏首页along的开发之旅Clion快速查看cpp preprocess 文件
原创

Clion快速查看cpp preprocess 文件

这里其实应该说CMake管理的项目,如何快速查看其Preprocess文件。因为Clion默认使用CMake管理文件,所以这里对Clion也适用。

注意:仅适用CMake+make,对于CMake+ninja等不适用。

对于Clion项目,编译时会生成cmake-build-debug目录,里面是cmake编译项目的产物。如下图:

Clion项目结构

注意,这里最重要的是Makefile文件,里面会有一系列任务。

这里我们最关注的是“main.cpp.i”,其内容如下,作用是生成预处理preprocess文件。

# target to preprocess a source file
main.cpp.i:
	$(MAKE) -f CMakeFiles/cppConcurrencyDemo.dir/build.make CMakeFiles/cppConcurrencyDemo.dir/main.cpp.i

和Makefile同级,然后执行“make main.cpp.i”,就会生成对应的preprocess文件。如下图:

main.cpp.i 预处理文件

这里来看下源文件和预处理后的文件对比:

查如何生成预处理文件是因为,写modern cpp时,想看下using后的会不会被预处理,“gcc -E”在大项目中不实用,所以找下有没有更智能更自动化的方法。

下图这里,左边的define在右侧可以看到已经被预处理了,但是using这些是不能被预处理的.

cpp和预处理文件对比

举一反三,我们在看下Makefile里还有什么有意思的target:

# target to generate assembly for a file
main.cpp.s:
	$(MAKE) -f CMakeFiles/cppConcurrencyDemo.dir/build.make CMakeFiles/cppConcurrencyDemo.dir/main.cpp.s

可以看到,通过"make main.cpp.s",我们就可以生成对应的汇编文件。

这些任务,都可以从Help target中找到。

# Help Target
help:
	@echo "The following are some of the valid targets for this Makefile:"
	@echo "... all (the default if no target is provided)"
	@echo "... clean"
	@echo "... depend"
	@echo "... rebuild_cache"
	@echo "... edit_cache"
	@echo "... cppConcurrencyDemo"
	@echo "... main.o"
	@echo "... main.i"
	@echo "... main.s"

由于是借助于CMake和Makefile的能力,所以对于多文件的项目也是可以的。

参考:

http://anadoxin.org/blog/generating-preprocessed-sources-in-cmake-projects.html

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 代码的“真面目”---如何查看cpp预处理后程序代码

    cpp的宏定义,适当的使用既可以减少重复代码,又避免了模板带来的代码膨胀,是很顺手的利器。

    望天
  • 【C/C++ 1】Clion配置与运行C语言

    CLion是Jetbrains公司旗下新推出的一款专为开发C/C++所设计的跨平台IDE,它是以IntelliJ为基础设计的,同时还包含了许多智能功能来提高开发...

    学到老
  • 现代化 C++ 开发工具 CLion 从入门到精通

    ? 作者:allsochen ,腾讯 PCG 后台开发工程师 这就是 CLion 几年前写过一篇 eclipse C++ 的文章、现在还提 eclipse 的...

    腾讯技术工程官方号
  • 用Visual Studio Code和CLion进行EOS开发

    每一个开发人员都需要一个良好的IDE,EOS开发也是一样,为项目开发过程构建一个良好的IDE环境是第一步。这就是为什么我们要写这个如何使用VS Code或者CL...

    笔阁
  • ubuntu/win10 CLion 使用

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/details...

    bear_fish
  • 解决Clion中多个cpp文件运行时出现multiple definition of `main'

    在最初使用Clion这款软件做C++开发时,有时会遇到在同一个Project中有多个cpp文件,而每个cpp文件又都有main函数,因此运行时会出现multip...

    志颖
  • CMake学习笔记

    CMake语法指定了许多变量,可用于帮助您在项目或源代码树中找到有用的目录。其中一些包括:

    肉松
  • 基于图的分割 实验教程Efficient Graph-Based Image Segmentation

    我是在ubuntu系统下进行C++的代码重现,主要是之前接触vim较少,所以下载了一个IDE.Clion下载地址 ,界面友好,git提交流程友好,习惯了在win...

    水球喵子
  • 如何用cmake编译

    CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多。CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeL...

    机智的程序员小熊

扫码关注云+社区

领取腾讯云代金券