移植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]
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) <<"------------------------------"<
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]
展开》
折叠》