C++开发 Clion平台
1. 使用clion新建c++项目
在使用Clion中创建新的Cmake项目时,会在项目根目录下自动生成CMakeLists.txt文件以及一个cmake-build-debug目录
-
CMake简介
cmake是一个跨平台、开源的构建系统。是一个集软件构建、测试、打包于一身的软件。在主项目和子项目中都要有CMakeLists.txt文件。
-
指定cmake的最小版本
cmake_minimum_required(VERSION 3.15)
-
设置项目名称
project(MyProject)
还可以添加版本号
project(MyProject VERSION 0.0.1)
-
指定c++版本
set(CMAKE_CXX_STANDARD 14)
set(key value)
接收两个参数用来申明变量 -
生成可执行程序,add_executable()
add_executable(MyProject main.cpp)
-
将子项目导入
add_SUBDIRECTORY(-/.cpp)
"-"是创建的的子项目的名称, "/"是子项目下源文件名称, "-“和”/"之间有空格
-
2. 无法共存多个main函数 无法编译
问题描述: 在使用C++开发时,会遇到同一个Project中有多个cpp文件,而每个cpp文件又都有main函数,因此运行时会出现multiple definition of 'main’这样的错误
解决办法:
因为一个编译链接生成的exe
文件只能有一个main函数,为了能使多个带main函数的cpp文件能在同一个Project中运行,需要对CMakeList.txt中做修改。在add_executable()中给cpp文件去一个别名,这个别名便会成为生成的exe
文件的名字。
修改前 | 修改后 |
---|---|
两个cpp都可以运行,会得到多个exe
文件
3. clion中c++使用当前目录读取文件失败
// test.txt放在cpp文件的统计目录下,但是读取不到该文件的情况
ofstream ofs;
ofs.open("test.txt", ios::in);
原因: 在
Clion
中,cpp
源文件经编译后生成可执行文件,放在cmake-build-debug
目录下,也就是最终的执行目录,所以文件的相对路径应该是../
ofs.open("../test.txt", ios::in);
件的相对路径应该是../
ofs.open("../test.txt", ios::in);