左旋异构

Something interesting


  • 首页

  • 分类

  • 标签

  • 归档

gRPC编译- version `GLIBCXX_3.4.20' not found 问题

发表于 2018-06-08 | 分类于 软件之路 |

在编译gRPC的过程中发现编译到最后弹出如下错误提示:

1
2
3
4
5
6
[PROTOC]  Generating protobuf CC file from src/proto/grpc/channelz/channelz.proto
[GRPC] Generating gRPC's protobuf service CC file from src/proto/grpc/channelz/channelz.proto
/home/work/tools/grpc_1.11/bins/opt/grpc_cpp_plugin: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /home/work/tools/grpc_1.11/bins/opt/grpc_cpp_plugin)
/home/work/tools/grpc_1.11/bins/opt/grpc_cpp_plugin: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/work/tools/grpc_1.11/bins/opt/grpc_cpp_plugin)
--grpc_out: protoc-gen-grpc: Plugin failed with status code 1.
make: *** [/home/work/tools/grpc_1.11/gens/src/proto/grpc/channelz/channelz.grpc.pb.cc] Error 1
阅读全文 »

Linux命令

发表于 2018-06-08 | 分类于 软件之路 |

查看文件大小

1
stat filepath
1
wc -c filepath
1
ls -s filepath

顶层Const和底层Const的问题

发表于 2018-06-06 | 分类于 软件之路 |

轮子哥的解释:

顶层和底层的翻译很容易让人误解为就只有两层,实际上当然是不是的。首先我们假设有这样的代码:template using Const = const T;
template using Ptr = T*;
然后const int *** const shit = nullptr;
要怎么看呢?很简单,不要用const和*,用Const和Ptr来表达,马上明白:Const<Ptr<Ptr<Ptr<Const>>>> shit = nullptr;
一秒学会

阅读全文 »

[问题记录]phabricator上git文件被识别为bin文件

发表于 2018-06-02 | 分类于 软件之路 |

最近在用phabricator的时候有一个cpp文件被识别为bin文件了。查看之后发现上次push中有一个非utf-8字符,导致文件的编码格式变成了ISO-8859

阅读全文 »

C++代码阅读笔记

发表于 2018-06-02 | 分类于 软件之路 |

rpc

for(;;)循环

阅读全文 »

C++ thread

发表于 2018-05-30 | 分类于 软件之路 |

一个实验

  • 使用join
    在join位置阻塞主线程
  • 使用detach
    不阻塞主线程(即使线程没执行完,一旦主线程结束则该线程亦结束)
    阅读全文 »

C++中一些知识点

发表于 2018-05-28 | 分类于 软件之路 |

定义与声明的区别

声明(Declaration)使得名字为程序所知,一个程序想使用在别处出现的名字就需要声明。
定义(Definition)产生与名字相关的实体,分配内存空间。

阅读全文 »

String的赋值

发表于 2018-05-26 | 分类于 软件之路 |

今天看到代码里有一段这样的操作:

1
2
3
4
5
6
7
8
int getline(std::string &str, FILE *fp) {
char *buf = reinterpret_cast<char *>(malloc(2048));
//something
str = buf;

free(buf);
buf = NULL;
return str.length();

第一反应是这句str = buf不是把buf的指针赋给str,然后free不是啥都没了吗?后来仔细看了看,其实std::string的赋值操作符是重载的,有一个定义是:

1
string& operator= (const char* s);

buf是直接把内容赋给了str,和指针无关了。

Cmake调试设置

发表于 2018-05-25 | 分类于 软件之路 |

常用CMakeLists.txt里有几行

1
2
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -Wall -ggdb -g2")
阅读全文 »

fprintf()中的stdout、stderr

发表于 2018-05-25 | 分类于 软件之路 |
1
fprintf(stdout, "");

输出到标准输出流,如果重定向到磁盘文件,则输出到磁盘文件,基本等同于

1
printf("");
阅读全文 »
1…456…8
汨罗

汨罗

72 日志
9 分类
74 标签
GitHub
© 2016 — 2023 汨罗
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.4