现在位置: 首页 > 自动控制 > 工业·编程 > 文章
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...
阅读全文
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...
阅读全文
2018-01-16 19:08 工业·编程 ⁄ 共 43字 暂无评论
方法一:gdb -tui a.out 方法二:进入gdb后,Ctl+x,Ctl+a进入tui
阅读全文
最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误: (.text+0x13): undefined reference to `func'     关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。 1.链接时缺失了相关目标文件(.o) 测试代码如下:     然后编译。 gcc -c test.c gcc –c main....
阅读全文
1.extern "C"的理解: 很多人认为"C"表示的C语言,实际并非如此,"C"表示的是一种链接约定,只是因C和C++语言之间的密切关系而在它们之间更多的应用而已。实际上Fortran和汇编语言也常常使用,因为它们也正好符合C实现的约定。 extern "C"指令描述的是一种链接约定,它并不影响调用函数的定义,即使做了该声明,对函数类型的检查和参数转换仍要遵循C++的标准,而不是C。 2.extern &quo...
阅读全文
1.概念和区别:     静态库就是在编译过程中一些目标文件的集合。静态库在程序链接的时候使用,链接器会将程序中使用到函数的代码从库文件中拷贝到应用程序中。一旦链接完成,在执行程序的时候就不需要静态库了。     由于每个使用静态库的应用程序都需要拷贝所用函数的代码,所以静态链接的文件会比较大。     相对于静态函数库,动态函数库在编译的时候并没有被编译进目标代码...
阅读全文
1 库的分类 根据链接时期的不同,库又有静态库和动态库之分。 静态库是在链接阶段被链接的(好像是废话,但事实就是这样),所以生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行。 有别于静态库,动态库的链接是在程序执行的时候被链接的。所以,即使程序编译完,库仍须保留在系统上,以供程序运行时调用。(TODO:链接动态库时链接阶段到底做了什么) 2 静态库和动态库的比较 链接静态库其实从某种意...
阅读全文
2017-12-17 06:07 工业·编程 ⁄ 共 1365字 暂无评论
链接器把多个二进制的目标文件(object file)链接成一个单独的可执行文件。在链接过程中,它必须把符号(变量名、函数名等一些列标识符)用对应的数据的内存地址(变量地址、函数地址等)替代,以完成程序中多个模块的外部引用。 而且,链接器也必须将程序中所用到的所有C标准库函数加入其中。对于链接器而言,链接库不过是一个具有许多目标文件的集合,它们在一个文件中以方便处理。 当把程序链接到一个链接库时,只会链接程...
阅读全文
2017-12-10 05:58 工业·编程 ⁄ 共 592字 暂无评论
gcc 是一个功能强大的编译器,其编译选项非常多。有些选项一般程序员根本不会用到。因此将所有的编译选项全部列出讲解是不明智的。下面只对一些 gcc 编译器的常 用选项进行详细的讲解,这些选项在实际编程过程中非常实用。 注意:gcc 编译选项会区分大小写。因此-o选项和-O选项的效果是不一样的。前者表示源文件编译成为可执行文件,后者表示将源文件编译成为可执行文件并且进行一级优化。 -S 将C语言源文件编译为汇编语言,但...
阅读全文
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 -...
阅读全文