CMake初体验
问题一:cl文件无法找到
具体情况
使用cmake(3.19版本)将cmakelists转化为makefiles并编译的过程遇到了一些问题(如cl is not a full path and was not found in the PATH.
即找不到cl文件的情况),使用cmake -G也无法找到vs2022的generator。
解决方案
失败情况:试过了其他blog的方法添加各种环境变量,失败。
成功方案:在添加好cl路径到环境变量后,更新了cmake的版本至最新(当时为3.26)之后再使用cmake命令或从cmake -G "Visual Studio 17 2022" ..
指定generator为vs2022编译上一个文件夹的cmakelists成功。
目前结论:cmake3.19可能与vs2022版本兼容上有些问题。
问题二:cmake命令使用
具体情况
使用cmake命令通过cmakelists构建打包软件时会产生一系列文件,为方便区分建议创建一个新文件夹进行cmake构建。
VS2022初体验
项目属性页 进行必要配置
在使用VS进行C++开发时,我们会遇到很多依赖环境、需要lib动态库支持、dll文件支持的情况。
头文件目录添加:属性页 --> C/C++ --> 附加包含目录 添加.h的父目录
eg: D:\boost_1_63_0 // .h文件在此目录下
需要条件编译时:属性页 --> C/C++ --> 预处理器定义 添加所需要的宏
lib库主持:属性页 --> 链接器 --> 常规 – > 附加库目录 添加所需lib文件的父目录地址
eg: D:/boost_1_63_0/stage/lib
D:/boost_1_63_0/stage/lib/$(Configuration)
同时在属性页 --> 链接器 --> 输入 --> 附加依赖项 中添加所需lib文件的名字 eg:kernel32.lib
C++开发配置流程
ps仅为刚入门菜比根据目前接触的一些项目形成的浅薄的经验。
First,刚上手拿到的项目大概率是从代码仓down下来的,git也就成了必备。TortoiseGit(海龟git)提供了相对简单的图形化界面,基本不用自己在terminal中进行git clone,push,pull等操作。
Second,项目down下来了一般会有一些target、source之类的,需要使用cmake或者make进行构建项目与编译,cmake和make是通过cmakelists和makelist进行构建的,这些文档一般是配开始写项目的时候就有一起写的,暂时应该不会要求才接受操作的小白码农(like me)去写。这步就需要有相应的环境了,cmake相关配置还有MinGW或者G++之类的环境,具体可以参考网络上的一些blog,还是很全面的。
Third,构建项目时产生的.sln文件就是你本次构建好的项目,还需要进入编译器进一步编译你的项目(C艹项目编译感觉还是有一点繁琐的,尤其是对我这种以前基本没接触过C++大型项目的菜比更加困难),这个时候需要添加相应的依赖环境和库之类的,参考上面的VS2022初体验。
以VS2022为例,生成解决方案后,点击“本地Windows调试器”(绿三角)开始运行就好了。
开发tips
使用指针或智能指针时
使用时注意初始化,并且有可能对初始化该指针或智能指针的大小有要求,如满足使用以及考虑数据对齐。
否则可能出现abort() has been called
等问题造成本端或对端的panic。