移植glog库到海思3519

 2 E币 
成为会员,免费下载资料
文件大小:497.73 KB 上传者:liusir 时间:2017-02-27 09:15:15 下载量:10
本帖最后由 liusir 于 2017-3-8 15:57 编辑

1.移植环境:
- Ubuntu15.10 + arm-hisiv500-linux-
- glog-0.3.3 下载地址【或者附件】:[url]https://code.google.com/archive/p/google-glog/downloads[/url]  

2.移植glog:
1)解压    

        shunzhi@ubuntu:~/software$ tar -xvzf glog-0.3.3.tar.gz

2)新建一个安装目录   

        shunzhi@ubuntu:~/software$ cd glog-0.3.3/  
        shunzhi@ubuntu:~/software/glog-0.3.3$ mkdir _install  

3)配置编译环境变量  
  
        shunzhi@ubuntu:~/software/glog-0.3.3$ ./configure --host=arm-hisiv500-linux --prefix=/home/shunzhi/software/glog-0.3.3/_install/  

4)编译glog库  

        shunzhi@ubuntu:~/software/glog-0.3.3$ make

5)安装glog库  
  
        shunzhi@ubuntu:~/software/glog-0.3.3$ make install
        shunzhi@ubuntu:~/software/glog-0.3.3$ cd _install/
        shunzhi@ubuntu:~/software/glog-0.3.3/_install$ ls
        include  lib  share
        然后将lib目录中的libglog.so.0文件拷贝到3519开发板的/usr/lib目录下。

3.测试:

1)测试程序
glog_hisi.c

[code]        #include
        #include
        #include
        #include
        #include
        #include
       
        int main(void)
        {
            char defpath[100] = "./log";
            //创建log文件夹
            mkdir("./log",0777);
            //log初始化
            google::InitGoogleLogging("New");
       
            FLAGS_colorlogtostderr = true;//设置输出到屏幕的日志显示相应颜色
            //FLAGS_servitysinglelog = true;// 用来按照等级区分log文件
            FLAGS_logbufsecs = 0;//缓冲日志输出,默认为30秒,此处改为立即输出
            FLAGS_max_log_size = 1; //最大日志大小为 100MB
            FLAGS_stop_logging_if_full_disk = true;//当磁盘被写满时,停止日志输出
            google::SetStderrLogging(google::GLOG_INFO); //设置级别 高于 google::INFO 的日志同时输出到屏幕
       
            //日志名称和输出地址
            char Info[50] = {0};
            char Warn[50] = {0};
            char Error[50] = {0};
            char Fatal[50] = {0};
       
            strcpy(Info, defpath);
            strcpy(Warn, defpath);
            strcpy(Error, defpath);
            strcpy(Fatal, defpath);
       
            strcat(Info, "/Info_");
            strcat(Warn, "/Warning_");
            strcat(Error, "/Error_");
            strcat(Fatal, "/Fatal_");
            google::SetLogDestination(google::GLOG_INFO,Info);
            google::SetLogDestination(google::GLOG_WARNING,Warn);
            google::SetLogDestination(google::GLOG_ERROR,Error);
            google::SetLogDestination(google::GLOG_FATAL,Fatal);
            LOG(INFO) <<"------------------------------"<             LOG(INFO) <<"---------Creat Log!!!---------\n ";
            LOG(INFO) <<"------------------------------"<        
            return 1;
        }
[/code]

Makefile

[code]        CC = arm-hisiv500-linux-g++
        #CC = g++
       
        DEMOTAR = glog_hisi
        DEMOOBJ = glog_hisi.o
       
        CFLAGS += -mcpu=cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4 -mno-unaligned-access -fno-aggressive-loop-optimizations
        CFLAGS += -g -Wall -I/home/shunzhi/software/glog-0.3.3/_install/include
        LDFLAGS += -L/home/shunzhi/software/glog-0.3.3/_install/lib -Wl,-Bdynamic -lglog -lpthread -lrt
       
        %.o: %.c
                @echo "[Compiling] $< ..."
                @$(CC) $(CFLAGS) -c $<
       
        all: $(DEMOTAR)
       
        $(DEMOTAR):$(DEMOOBJ)
                @$(CC) -o $@ $^ $(LDFLAGS)
       
        .PHONY : clean
        clean:
                rm -rf $(DEMOOBJ) $(DEMOTAR)  [/code]

2)编译测试程序  

        shunzhi@ubuntu:~/workspace/glog$ ls
        glog_hisi.c  Makefile
        shunzhi@ubuntu:~/workspace/glog$ make
        [Compiling] glog_hisi.c ...
        shunzhi@ubuntu:~/workspace/glog$ ls
        glog_hisi  glog_hisi.c  glog_hisi.o  Makefile

3)测试结果

        ~/glog # ls
        glog_hisi
        ~/glog # ./glog_hisi
        I0101 15:44:54.473941   273 glog_hisi.c:46] ------------------------------
        I0101 15:44:54.475924   273 glog_hisi.c:47] ---------Creat Log!!!---------
         
        I0101 15:44:54.476441   273 glog_hisi.c:48] ------------------------------
        ~/glog # ls
        glog_hisi  log

        注:log目录下的文件就是生成的日志文件

4.移植库可能遇到的问题

1)执行congfigure配置通过,而且执行make编译也正常,在执行sudo make install是出现了下面的错误:  
  
错误log

        make[1]: Entering directory '/home/shunzhi/software/glog-0.3.3'
        test -z "/home/shunzhi/software/glog-0.3.3/lib" || /bin/mkdir -p "/home/shunzhi/software/glog-0.3.3/lib"
         /bin/sh ./libtool   --mode=install /usr/bin/install -c   libglog.la '/home/shunzhi/software/glog-0.3.3/lib'
        libtool: install: /usr/bin/install -c .libs/libglog.so.0.0.0 /home/shunzhi/software/glog-0.3.3/lib/libglog.so.0.0.0
        libtool: install: (cd /home/shunzhi/software/glog-0.3.3/lib && { ln -s -f libglog.so.0.0.0 libglog.so.0 || { rm -f libglog.so.0 && ln -s libglog.so.0.0.0 libglog.so.0; }; })
        libtool: install: (cd /home/shunzhi/software/glog-0.3.3/lib && { ln -s -f libglog.so.0.0.0 libglog.so || { rm -f libglog.so && ln -s libglog.so.0.0.0 libglog.so; }; })
        libtool: install: /usr/bin/install -c .libs/libglog.lai /home/shunzhi/software/glog-0.3.3/lib/libglog.la
        libtool: install: /usr/bin/install -c .libs/libglog.a /home/shunzhi/software/glog-0.3.3/lib/libglog.a
        libtool: install: chmod 644 /home/shunzhi/software/glog-0.3.3/lib/libglog.a
        libtool: install: arm-hisiv500-linux-ranlib /home/shunzhi/software/glog-0.3.3/lib/libglog.a
        ./libtool: line 1099: arm-hisiv500-linux-ranlib: command not found
        Makefile:697: recipe for target 'install-libLTLIBRARIES' failed
        make[1]: *** [install-libLTLIBRARIES] Error 127
        make[1]: Leaving directory '/home/shunzhi/software/glog-0.3.3'
        Makefile:1428: recipe for target 'install-am' failed
        make: *** [install-am] Error 2


错误原因:  
交叉工具链安装的问题,交叉工具链root用户下找不到。  

解决方案:  
按照上述我的配置步骤,新建一个安装目录(shunzhi@ubuntu:~/software/glog-0.3.3$ mkdir _install),然后配置选项中指明安装目录(--prefix=/home/shunzhi/software/glog-0.3.3/_install/),执行make install即可。



[postbg]bg4.png[/postbg]
展开
折叠
1630
评论
共 0 个
内容存在敏感词
    易百纳技术社区暂无数据
相关资料
关于作者
易百纳技术社区
liusir
贡献资料 2
易百纳技术社区 我上传的资料
登录查看
我赚取的积分
登录查看
我赚取的收益
登录查看
上传资料 赚取积分兑换E币
易百纳技术社区
删除原因
广告/SPAM
恶意灌水
违规内容
文不对题
重复发帖
置顶时间设置
结束时间
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-资料模块

审核失败

失败原因
备注
易百纳技术社区