手把手教你使用 Clion 开发 Linux C++ 项目

关于CLion

CLion是一款专为开发C及C++所设计的跨平台IDE。它是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员的生产力,提高开发人员的工作效率。这种强大的IDE帮助开发人员在Linux、OS X和Windows上来开发C/C++,同时它还使用智能编辑器来提高代码质量、自动代码重构并且深度整合CMake编译系统,从而提高开发人员的工作效率。
重要功能有:
提供C及C++支持(包含C++11, libc++ 和Boost),同时也支持JavaScript, XML, HTML 和CSS 。
跨平台:您可在64-bit Linux,OS X 以及64-bit Windows上使用它。
支持GCC、clang、MinGW、Cygwin 编译器以及 GDB 调试器。
提供对CMake 支持:包含自动处理CMake changes和CMake targets,更新新创建的 C/C++ 档案及CMake Cache 编辑器。
提供各式编码辅助:包含多行编辑功能、智能完成功能以及一键导航等。
安全可信的自动代码重构功能。
代码分析功能:监控代码品质并提供快速修复让开发人员得以及时就地解决问题。
集成GDB 调试器及评估表达式(expressions)功能、STL 容器渲染器(renderers)、监视(watches)、内嵌变量视图等。
与最热门的版本控制系统集成:Subversion、Git、GitHub,、Mercurial、CVS、Perforce及TFS。
内建terminal 模式并可通过插件实现提供Vim-emulation模式。
智能编辑器-CLion的智能编辑器能帮助开发人员更快地将代码补全,同时它还保持开发人员的代码格式化并符合配置编码的风格。使用此智能编辑器能快速选择代码块,还可以将代码重新排序。

代码生成和重构-在CLion中,开发人员可以使用之前定义发布的函数、变量、数据成员或者一个类,在IDE中会用红色来突出显示。同时CLion还提供了一套可靠的重构来帮助开发人员保持代码的质量,此代码重构适用于整个变化范围。
代码分析-CLion还提供了动态的代码分析,能不断地监控代码潜在的错误。如果在编辑器中找到了可以的代码,那么它会提出快速修正的方法来解决这个问题。
支持CMake-CLion提供了对CMake的支持,这包括了自动处理CMake changes和CMake targets更新新创建的 C/C++ 档案及CMake Cache 编辑器。

关于本文示例代码

代码配置在一台名称为ubuntu的linux开发机上,代码清单如下所示,分别为main.cc和CMakeLists.txt

#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <iostream> /**
* power - Calculate the power of number.
* @param base: Base value.
* @param exponent: Exponent value.
*
* @return base raised to the power exponent.
*/
double power(double base, int exponent)
{
int result = base;
int i; if (exponent == 0) {
return 1;
} for(i = 1; i < exponent; ++i){
result = result * base;
} return result;
} int main(int argc, char *argv[])
{
if (argc < 3){
printf("Usage: %s base exponent \n", argv[0]);
return 1;
}
double base = atof(argv[1]);
int exponent = atoi(argv[2]);
double result = power(base, exponent);
printf("%g ^ %d is %g test\n", base, exponent, result); std::string ss;
ss = "teetee"; std::cout<< ss.append("hello")<<std::endl; return 0;
}
cmake_minimum_required (VERSION 2.8)

project (Demo1)
add_executable(Demo main.cc)

关于具体配置方法

首先将远程的ubuntu开发服务器加入Clion

其次配置项目双向关联

接下来配置演示如何调试代码

最后说明如何使用CLion提供的静态分析功能分析项目中代码的问题

总结

本文完整的介绍了使用Clion 开发 Linux C++ 项目的每一个步骤,提供了完整的测试代码,同时在需要配置的地方都给出了完整的截图,希望对大家有所帮助。

手把手教你使用 Clion 开发 Linux C++ 项目的更多相关文章

  1. 手把手教你启用Win10的Linux子系统(超详细)

    原文:手把手教你启用Win10的Linux子系统(超详细) 版权声明:转载请保留出处,谢谢! https://blog.csdn.net/zhangdongren/article/details/82 ...

  2. 手把手教你使用FineUI开发一个b/s结构的取送货管理信息系统系列博文索引

    近阶段接到一些b/s类型的软件项目,但是团队成员之前大部分没有这方面的开发经验,于是自己选择了一套目前网上比较容易上手的开发框架(FineUI),计划录制一套视频讲座,来讲解如何利用FineUI快速开 ...

  3. 菜鸟-手把手教你把Acegi应用到实际项目中(8)-扩展UserDetailsService接口

    一个能为DaoAuthenticationProvider提供存取认证库的的类,它必须要实现UserDetailsService接口: public UserDetails loadUserByUse ...

  4. 手把手教你Chrome扩展开发:本地存储篇

    手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单 手把手教你开发Chrome扩展二:为html添加行为 手把手教你开发Chrome扩展三:关于本地存储数据 HTML5 ...

  5. 手把手教你搭建织女星开发板RISC-V开发环境

    前言 Windows环境下搭建基于Eclipse + RISC-V gcc编译器的RISC-V开发环境,配合openocd调试软件,可以实现RISC-V内核程序的编译.下载和调试. 准备工作 工欲善其 ...

  6. 菜鸟-手把手教你把Acegi应用到实际项目中(10)-保护业务方法

    前面已经讲过关于保护Web资源的方式,其中包括直接在XML文件中配置和自定义实现FilterInvocationDefinitionSource接口两种方式.在实际企业应用中,保护Web资源显得非常重 ...

  7. 手把手教你从零实现Linux misc设备驱动一(基于友善之臂4412开发板)

    关于怎样来写一个misc设备,在前面有篇文章已经介绍了大致的流程,如今就让我们来实现一个最简单的misc设备驱动. http://blog.csdn.net/morixinguan/article/d ...

  8. 从0开始,手把手教你用Vue开发一个答题App01之项目创建及答题设置页面开发

    项目演示 项目演示 项目源码 项目源码 教程说明 本教程适合对Vue基础知识有一点了解,但不懂得综合运用,还未曾使用Vue从头开发过一个小型App的读者.本教程不对所有的Vue知识点进行讲解,而是手把 ...

  9. 从0开始,手把手教你用Vue开发一个答题App

    项目演示 项目演示 项目源码 项目源码 教程说明 本教程适合对Vue基础知识有一点了解,但不懂得综合运用,还未曾使用Vue从头开发过一个小型App的读者.本教程不对所有的Vue知识点进行讲解,而是手把 ...

随机推荐

  1. teamviewer连接未就绪的解决(Manjaro Linux)

    放假回家,想设置一下teamviewer,结果一直报错"TeamViewer not ready. Please check your connection" 查了一通,发现这个方 ...

  2. flask + MySQL-python 创建 webapp 应用

    0 - python 用自带的 wgsi 也可以创建 web 服务1)建立 hello.py 内容如下 # hello.pydef application(environ, start_respons ...

  3. jquery提示sucess

    这是学习笔记. 今天做东西的时候,想把体验做好,于是打算再ajax success字段中添加函数实现提示sucess. 用了jquery的fadeIn 跟fadeOut,再fadeIn的callbac ...

  4. HTML5_新标签

    HTML5 是定义 HTML 标准的最新版本. 是一个新版本的 HTML 语言,具有新的元素,属性,行为, 是一个技术及,允许更多样化和强大的网站和应用程序 优势: 跨平台: 通吃 MAC PC Li ...

  5. Gparted Live分区调整

    由于年少无知,在安装ubuntu系统的时候,以为/temp是软件包安装时解压的缓冲,所以给/temp留了10G,而以为/var只是记录一些log而已,因此把仅存的1G分配给了它.随后在安装软件时出现“ ...

  6. Hibernate-day02

    OID 1,对象里面没有主键的概念,对象中对应主键的属性,称为OID(对象标识符);2,OID用来唯一标明一个对象实体(加上对象类型)3,OID在对象里面不见得只有一个属性;(映射复合主键)4,OID ...

  7. java--List、Set、Map的基础

    好像面试很多面试官都喜欢问这它们的一些问题,所以在这里我稍微总结一下,并把大佬们的文章链接贴在后面. 首先我们借鉴了https://www.cnblogs.com/SnowingYXY/p/67273 ...

  8. js 用touch事件实现简单tap

    function _tap(dom,callBack){ var startTime=0; var delayTime=200; var isMove=false; dom.addEventListe ...

  9. VUE错误码Attribute ':sizeOpts' must be hyphenated

    Attribute ':sizeOpts' must be hyphenated 因为属性有大写,需要添加 - 来取代 例如 tampData  换成 tamp-data 就可以了

  10. 使用openSSL开源工具进行SSL/TLS 安全测试

    本文介绍了使用半自动化工具执行SSL&TLS安全性评估的过程,以及如何使用手动及工具的测试方法验证并发现问题.目的是优化TLS和SSL安全测试流程,帮助信息安全顾问在渗透测试时在TLS / S ...