笔记
文章平均质量分 63
金色熊族
这个作者很懒,什么都没留下…
展开
-
CMake学习笔记(四)cmake --build使用踩坑记录
将在目录中产生结果文件。但是实测发现,这里有坑:如果CMakeCache.txt等文件没有产生在中的话,cmake --build 将报错。只有先在目录下执行cmake ..,使得CMakeCache.txt产生在中,cmake -build 才能起作用。编译结果最终产生在build目录下。原创 2024-10-10 19:39:05 · 389 阅读 · 0 评论 -
CMake学习笔记(三)区分macro与function
因为macro的set(in "2")又定义了一个新的变量in,并赋值2。在执行set(in "2")之前,message("in = "${in})的内容已经被替换成message("in = 1"),所以set(in "2")对后面的语句没有影响,仍然输出1。(事实上,set(in "2")把in当成了一个新的全局变量,后面还会提到)。这也是set(in "2")起作用的原因。可见,test(1)调用时,in = 1,但是set(in "2")随后将in 改为2.所以接下来打印in = 2。原创 2024-04-05 18:31:35 · 626 阅读 · 0 评论 -
CMake学习笔记(二)从PROJECT_BINARY_DIR看外部编译和内部编译
1 从哪个路径执行cmake命令,变量PROJECT_BINARY_DIR就等于这个路径2cmake产生的中间文件、结果文件都保存在与CMakeLists.txt一起的路径下,这叫做内部编译。反之,两者分开的,就是外部编译。3 ADD_SUBDIRECTORY的第二个输入参数指定了cmake产生结果文件的保存路径。假如不指定这个输入参数,则用来存放编译结果的文件夹就是${PROJECT_BINARY_DIR};原创 2024-03-26 22:14:43 · 1022 阅读 · 0 评论 -
CMake学习笔记(一)一个最简单的CMakeLists嵌套示例
这里,src文件夹需要稍后手动建立,因为在cmake之前,src里面要放进去源码。但是bin文件夹不需要手动建立,因为cmake过程中会自动建立bin。bin用来存放编译产生的结果文件。bin只是习惯的名称,你也可以换个名字,如bin1。这里顺便讲一下ADD_SUBDIRECTORY的用法它的第一个输入参数是用来存放源代码的文件夹,第二个参数是用来存放编译结果的文件夹。第二个参数可以输入,也可以不输入。原创 2024-03-26 21:00:12 · 717 阅读 · 0 评论 -
对一条Linux命令的解读(sed find egrep)
在前面的博客中,我使用了一条指令解决了一个关于Werror的错误。原创 2023-10-02 23:56:54 · 405 阅读 · 0 评论 -
以太网帧结构简介
以太网帧结构简介原创 2022-11-13 10:22:32 · 2212 阅读 · 0 评论 -
解答《Linux多线程服务端编程:使用muduo c++网络库》1.9节末的问题
在陈硕的著作《》1.9节末,提出一个问题:如何在临界区以外销毁资源?这里给出两个解法。二者只有两句话次序前后的区别,但是一个正确,一个错误。目录正确的解法代码结果错误的解法代码结果结论正确的解法代码#include <QCoreApplication>#include <QMutex>#include <memory>#include <QDebug>class CLock {public:..原创 2021-08-08 15:17:30 · 225 阅读 · 2 评论 -
常引用不会增加shared_ptr的计数
起始这个不难理解:拷贝shared_ptr才会增加计数。下面实际验证一下:代码#include <memory>#include <iostream>auto sp = std::make_shared<int>(1);int iTime100(const std::shared_ptr<int> & spTemp)//const reference{ std::cout << "inside "<< __原创 2021-08-08 14:47:24 · 376 阅读 · 0 评论 -
shared_ptr::swap, reset的用法示例
在陈硕所著的<<Linux多线程服务端编程:使用muduo c++网络库>>一书1.19节中,介绍了c++的shared_ptr的函数swap和reset的用法。本文通过两个小程序示例这两个程序各自的作用。swap()代码:#include <memory>#include <iostream>class Bar { public: ~Bar(){ std::cout << "destroying"; } };int mai原创 2021-08-08 14:28:16 · 2367 阅读 · 0 评论 -
windows 环境下postgres导入sql文件出错:encoding “gbk“ has no equivalent in encoding “utf8“ 的解决办法
假如sql中有汉字,且postgres的服务器和客户端采用不同的字符集时,就会出现标题所报的问题。解决办法:1 在命令行进入postgres所处的路径xxx\postgresql\9.6\bin2 输入命令set PGCLIENTENCODING=utf83 执行命令psql -U 用户名 -d 数据库名 -f xxx.sql(被导入的sql文件,也要放在xxx\postgresql\9.6\bin)...原创 2020-11-23 15:09:31 · 5177 阅读 · 0 评论