2018-01-28 19:38
⁄ 工业·编程
⁄ 共 764字
1. RCF: 纯c++的RPC, 不引入IDL, 大量用到boost,比较强大.
2. casocklib: protobuf + asio 较完善实现
3. eventrpc: protobuf + libevent 较完善实现
https://www.exit1.org/Event-RPC/
4. evproto: protobuf + libevent 简单实现
https://github.com/chenshuo/evproto
https://github.com/chenshuo/evproto2
5. febird:同样无IDL的c++ RPC,自己实现了串行化和网络IO.
6. libHttp, xmlrpc 都是xml封装的RPC
7.rest_rpc...
rpc, 开源阅读全文
2018-01-21 18:06
⁄ 工业·编程
⁄ 共 589字
1、Google
https://github.com/grpc/grpc
https://github.com/google/protobuf
http://doc.oschina.net/grpc
2、thrift
http://thrift.apache.org/
http://thrift.apache.org/lib/
http://thrift.apache.org/lib/cpp
https://github.com/apache/thrift
3、Tencent
腾讯微服务框架Tars介绍
https://github.com/TarsCloud/Tars
https://github.com/TarsCloud/TarsCpp
https://github.com/TarsCloud/TarsGo
https://github.com/lov...
brpc, rpc, 网络编程阅读全文
2018-01-16 19:08
⁄ 工业·编程
⁄ 共 43字
方法一:gdb -tui a.out
方法二:进入gdb后,Ctl+x,Ctl+a进入tui
GDB阅读全文
2018-01-14 06:50
⁄ 工业·编程
⁄ 共 2810字
最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:
(.text+0x13): undefined reference to `func'
关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。
1.链接时缺失了相关目标文件(.o)
测试代码如下:
然后编译。
gcc -c test.c
gcc –c main....
GCC阅读全文
2018-01-07 06:30
⁄ 工业·编程
⁄ 共 2139字
1.extern "C"的理解:
很多人认为"C"表示的C语言,实际并非如此,"C"表示的是一种链接约定,只是因C和C++语言之间的密切关系而在它们之间更多的应用而已。实际上Fortran和汇编语言也常常使用,因为它们也正好符合C实现的约定。
extern "C"指令描述的是一种链接约定,它并不影响调用函数的定义,即使做了该声明,对函数类型的检查和参数转换仍要遵循C++的标准,而不是C。
2.extern &quo...
GCC阅读全文
2017-12-31 06:17
⁄ 工业·编程
⁄ 共 1331字
1.概念和区别:
静态库就是在编译过程中一些目标文件的集合。静态库在程序链接的时候使用,链接器会将程序中使用到函数的代码从库文件中拷贝到应用程序中。一旦链接完成,在执行程序的时候就不需要静态库了。
由于每个使用静态库的应用程序都需要拷贝所用函数的代码,所以静态链接的文件会比较大。
相对于静态函数库,动态函数库在编译的时候并没有被编译进目标代码...
GCC阅读全文
2017-12-24 06:12
⁄ 工业·编程
⁄ 共 2262字
1 库的分类
根据链接时期的不同,库又有静态库和动态库之分。
静态库是在链接阶段被链接的(好像是废话,但事实就是这样),所以生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行。
有别于静态库,动态库的链接是在程序执行的时候被链接的。所以,即使程序编译完,库仍须保留在系统上,以供程序运行时调用。(TODO:链接动态库时链接阶段到底做了什么)
2 静态库和动态库的比较
链接静态库其实从某种意...
GCC阅读全文
2017-12-17 06:07
⁄ 工业·编程
⁄ 共 1365字
链接器把多个二进制的目标文件(object file)链接成一个单独的可执行文件。在链接过程中,它必须把符号(变量名、函数名等一些列标识符)用对应的数据的内存地址(变量地址、函数地址等)替代,以完成程序中多个模块的外部引用。
而且,链接器也必须将程序中所用到的所有C标准库函数加入其中。对于链接器而言,链接库不过是一个具有许多目标文件的集合,它们在一个文件中以方便处理。
当把程序链接到一个链接库时,只会链接程...
GCC阅读全文
2017-12-10 05:58
⁄ 工业·编程
⁄ 共 592字
gcc 是一个功能强大的编译器,其编译选项非常多。有些选项一般程序员根本不会用到。因此将所有的编译选项全部列出讲解是不明智的。下面只对一些 gcc 编译器的常 用选项进行详细的讲解,这些选项在实际编程过程中非常实用。
注意:gcc 编译选项会区分大小写。因此-o选项和-O选项的效果是不一样的。前者表示源文件编译成为可执行文件,后者表示将源文件编译成为可执行文件并且进行一级优化。
-S
将C语言源文件编译为汇编语言,但...
GCC阅读全文
2017-12-05 22:25
⁄ 工业·编程
⁄ 共 4111字
1.hadoop-3.0要求JDK版本不低于1.8,对之前的Java版本不再提供支持.
所有Hadoop JAR现在都是针对Java 8的运行时版本编译的。
2.部分服务默认端口修改,不再绑定到Linux临时端口 (HDFS-9427,HADOOP-12811)
Namenode ports: 50470 --> 9871, 50070--> 9870, 8020 --> 9820
Secondary NN ports: 50091 --> 9869,50090 --> 9868
Datanode ports: 50020 --> 9867, 50010--> 9866, 50475 --> 9865, 50075 -...
Hadoop阅读全文