开发者中心

构建

目录

构建库

前提条件
表 1: 构建库的前提条件。
软件 最低版本 备注
Linux 2.6.32  
gcc (clang) 4.7 (3.3) 支持gcc和clang
libcurl 7.26.0 低版本可能可行,但未经测试
Lua 5.0 可选,仅为支持Lua插件

编译库

首先,从git代码库下载库,然后进入目录。

                      
$ git clone git@bitbucket.org:m2m/cumulocity-sdk-c.git
$ cd cumulocity-sdk-c
                      
                  

其次,创建init.mk文件,并定义具体的宏CPPFLAGS,CXXFLAGS以及LDFLAGS,LDLIBS和CXX(如果交叉编译)。

                      
CXX:=/usr/bin/g++
CPPFLAGS:=-I/usr/include
CXXFLAGS:=-Wall -pedantic -Wextra
LDFLAGS:=-L/usr/lib
LDLIBS:=-lcurl
                      
                  

清单 2 显示了一个典型的init.mk文件例子。本质上,init.mk定义了所需的c++头文件搜索目录,首选的警告级别,所需的c++库文件的搜索目录,以及必要的链接标志。

本机编译时,很多设置明显可以省略,这些都是和交叉编译(这是库的通常应用场景)相关的。稍后我们解释init.mk文件,此文件对其他目标也很重要,如按需裁剪构建。

定义init.mk后,该定义makefile了。

                      
    $ cp Makefile.template Makefile
                        
                  

多数情况下缺省的Makefile.template不需要做修改。某些设置不适用的情况下,如,希望用-Os优化替换缺省的-O2优化,简单修改Makefile即可。

我们已经完成了所有的准备工作,该为目标设备构建库了。

                      
    $ make
                      
                  

如果配置都正确,应该可以编译库并在根目录的lib/中生成二进制文件,并在bin/目录生成watchdog 守护进程文件srwatchdogd。

构建系统同时支持debug和release模式。以上命令缺省构建debug版本。debug版本生成更大的二进制文件,更详细的输出,等等,适用于开发阶段。要发布软件时,想要release版本时,可以清除所有的中间文件并以release模式重新构建。

                     
    $ make clean
    $ make release