一种方法是编写makefile文件,用makefile文件管理程序脚本之间的相互依赖关系
一、CMake是一种跨平台编译工具,比make更为高级。CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序
二、cmake 指向CMakeLists.txt所在的目录,例如cmake .. 表示CMakeLists.txt在当前目录的上一级目录
cmake会生成很多中间文件,所以建议新建一个文件夹存放,分四个步骤:
1、mkdir bulid //新建文件夹存放编译的中间文件
2、cd bulid //进入bulide文租闷件夹
3、cmake .. //因为CMakeLists.txt文件在当前目录的外面,所以cmake命令需要使用cmake ..
4、make //make命令根据makefile文件编译源码,在bulid目录下生成一个可执行文件,运行获取结果
CMakeLists.txt主要包含以上的7个步骤:
#1.cmake verson,指定cmake版本
cmake_minimum_required(VERSION 3.13)
#2.project name,指定项目的名称,一般和项目弊碰弯的文件夹名称FirstProject对应
PROJECT(FirstProject)
#3.head file path,头文件目录
INCLUDE_DIRECTORIES()
#4.source directory,吵团源文件目录
AUX_SOURCE_DIRECTORY(src DIR_SRCS)
#5.set environment variable,设置环境变量,编译用到的源文件全部都要放到这里,否则编译能够通过,但是执行的时候会出现各种问题,比如"symbol lookup error xxxxx , undefined symbol"
SET(TEST_MATH)
#6.add executable file,添加要编译的可执行文件
ADD_EXECUTABLE(${PROJECT_NAME} ${TEST_MATH})
#7.add link library,添加可执行文件所需要的库(命名规则:lib+name+.so),就添加该库的名称
TARGET_LINK_LIBRARIES(${PROJECT_NAME} m)
基本上Resharper for C++还处在初级阶段卜禅薯, parsing的速度不如Visual Assist X, Resharper装在VS2013上表现还算正常, 装在VS2012上Find Usage定位会出错, 而且袭早卸掉以后居然需要修复VS, 吓得我一身冷汗CLIon 在Mac上就基本上不用做任何配置, VIM插件不错,要好于VS上的VsVim. CLion上的Feature要比Resharper For C++多, 毕竟CLion是专门为C++设计的.
CLion界面是基于IntellJ IDEA平台的, 一如既往的丑, 用过VS+VA的会稍微有点不爽, CLion好像没有默认的鼠标悬停(用的时型者间短, 请指正)
用虚拟机里的Ubuntu装了一下CLion, 卡到不行, 不多说了
CentOS 6.5平台默认安装的GCC版本为4.4,在CentOS6.5平台上使用CLion编译C++程序时会提示”识别不出命令行参数std:c++11"的问题。
出现这个问题的原因是CLion使用GCC编译C、C++程序,从GCC 4.8版本后GCC才开始支持C++11,系统默认安装的4.4版本不支持C++11导致此问题。
解决方法有两个:
一、将CMakeLists.txt中“std:c++11”修改为“std:c++0x”,即放弃支持C++11标准。
二、升级系统的GCC版本,升级到4.8或更高版本。升级宏轿手GCC的方帆桥法、步骤见本博客《CentOS 6.5下升级GCC编译器到4.9.1版本的方法、步骤》。
通常新版GCC会安装到/usr/local/GCC 4.8.*目录下。此时系统中存在两个版蔽嫌本的GCC,为确保CLion能够使用高版本的GCC编译程序,还需做如下 *** 作:
rm -rf /usr/bin/gcc
rm -rf /usr/bin/c++
创建新的链接文件,将gcc 及C++链接到高版本的GCC文件。
ln -s /usr/local/GCC 4.9.1/bin/gcc gcc
ln -s/usr/local/GCC 4.9.1/bin/c++ c++
在命令行中输入gcc -v,检查是否识别的是高版本的gcc,显示GCC 4.9.1则成功。
此时再CLion中再次编译会提示成功。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)