1、在不同的平台编译的时候,会用到一些系统内置的变量,比如操作系统名称,版本号之类:
CMAKE_SYSTEM:系統全名,如 “Linux-2.4.22″,”FreeBSD-5.4-RELEASE” 或 “Windows 5.1”
CMAKE_SYSTEM_NAME:系統名称,如 “Linux”, “FreeBSD” or “Windows”,注意大小写
CMAKE_SYSTEM_VERSION:只显示系统全名中的版本部分
CMAKE_SYSTEM_PROCESSOR:CPU名称
继续阅读 »
cmake学习(五) 系统默认变量和内置变量
cmake学习(四)模块的使用和自定义模块
FIND_PACKAGE
每一个模块都会产生如下变量
_FOUND
_INCLUDE_DIR
_LIBRARY or _LIBRARIES
如果_FOUND为真,把_INCLUDE_DIR加入到INCLUDE_DIRECTORIES中,_LIBRARY加入到TARGET_LINK_LIBRARIES中。
继续阅读 »
cmake学习(三)常用指令
一、基本指令:
INCLUDE_DIRECTORIES(${includedir}) #-I。
LINK_DIRECTORIES(${libdir}) #-L
TARGET_LINK_LIBRARIES(helloworld ${linkflags}) #-l
ADD_DEFINITIONS(${cflags}) #-D
继续阅读 »
cmake学习(二)常用变量和常用环境变量
一、变量的引用方式是使用“${}”,在IF中,不需要使用这种方式,直接使用变量名即可
二、自定义变量使用SET(OBJ_NAME xxxx),使用时${OBJ_NAME}
三、cmake的常用变量:
CMAKE_BINARY_DIR,PROJECT_BINARY_DIR,_BINARY_DIR:
这三个变量内容一致,如果是内部编译,就指的是工程的顶级目录,如果是外部编译,指的就是工程编译发生的目录。
继续阅读 »
cmake学习(一)静态库与动态库构建
(.so)共享库,shared object:节省空间,在运行时去连接,如果执行机器上没有这些库文件就不能执行。
(.a)静态库,archive:静态库和程序化为一体,不会分开。
通过 ldd命令可以查看一个可执行程序所依赖的的共享库。
使用环境变量LD_LIBRARY_DIRECTORY可以指定共享库位置
继续阅读 »
C++注释规范
最近一直在给项目代码加注释,因为结项有一项工程性的要求是注释占到总行数的额50%,这几天可苦了我们几个。前几天为了统一项目组的注释规范,专门整理了一份,以后可能也用得着,放着备份下。 1 源文件头部注释 Ø 列出:版权、作者、编写日期和描述。 Ø 示例:
1 2 3 4 5 6 |
/************************************************* * Copyright:bupt * Author: * Date:2010-08-25 * Description:描述主要实现的功能 *************************************************/ |
每行不要超过80个字符的宽度。
继续阅读 »
epoll的一个实例(循环读,循环写,错误处理)
服务端代码:
epoll循环读写,处理EAGAIN,ECONNRESET,EINTR等错误,不错的例子
继续阅读 »
wireshark protobuf 插件
搞网络开发的时候,涉及到很多私有协议。方便是方便,不过抓包分析问题就麻烦了,wireshark是不可能会为我们自己的网络协议开发分析工具的,唯有自己开发协议分析插件。在私有协议方面,google protobuf是一个类似与IDL的语言,用于定义消息接口,并且支持很多语言,原生支持C++、Java和python,而且还有很多第三方的支持,基本上支持C、C#、object-c,AS3,PHP等.目前protobuf的解析并不是wireshark内置支持的,不排除以后的版本会支持。当前网络上有一个工程可以支持protobuf的解析(protobuf-wireshark),但是该插件原生支持的只有linux版本,而且还只支持UDP解析。经本人改造,已经可以支持windows,并且同时支持TCP和UDP解析。TCP时,需要在protobuf之上加上一个4字节的数据长度,用于支持后续的protobuf消息的大小。
继续阅读 »
protobuf-wireshark编译小结
一直使用protobuf作为网络开发的私有协议消息通信。但是抓包分析是个问题。幸好目前已经有了支持wireshark的protobuf插件。该插件是基于linux的代码编写的。
1. 首先要先搭建好wireshark编译环境,可以参考官方的wireshark编译环境配置,安装上面的配置基本上是无问题。
继续阅读 »
近期评论