生成gtest静态库 libgtest.a文件

本文介绍了如何生成gtest静态库libgtest.a,包括下载gtest源码,使用g++编译生成gtest-all.o,然后通过ar命令创建libgtest.a。接着,展示了将库文件和头文件集成到个人工程中的步骤,包括拷贝库文件和头文件,并编写自己的main函数。最后,给出了makefile示例,执行make命令后可得到可执行文件。

生成libgtest.a文件

在前面的一篇文章中我大概的描述了gtest的使用,不过生成libgtest.a文件包含gtest_main.a文件,如果我们要写自己的main函数怎么呢,而不源码包中提供的gtest_main.cc文件。[http://blog.youkuaiyun.com/chenxun_2010/article/details/53639980]
好了,
1. 下载gtest源码包。目录结构如下。
这里写图片描述

2.生成静态库a文件
g++ -isystem ./include -I./ -pthread -c src/gtest-all.cc 生成gtest-all.o文件
然后执行下面的命令生成libgtest.a文件
ar -rv libgtest.a gtest-all.o
这里写图片描述

3.libgtest.a文件的使用。
建立自己的工程目录,目录结构如下
这里写图片描述
把gtest源码包下面的include下的文件拷贝到自己的工程目录下的include文件夹下
这里写图片描述

把刚才生成的libgtest.a的文件拷贝自己工程目录下lib目录下
cp ~/gtest-1.7.0/libgtest.a lib/
这里写图片描述

拷贝源码里面的例子到自己的工程目录下
cp ~/gtest-1.7.0/samples/sample1.h include/
cp ~/gtest-1.7.0/samples/sample1.cc src/sample1.cpp
cp ~/gtest1.7.0/samples/sample1_unittest.cc src/sample1_unittest.cpp
这里写图片描述

然后参考gtest源码包下src中gtest_main.cc文件写一个自己的main文件
放到自己的工程目录下src文件夹下
这里写图片描述

#include <stdio.h>
#include "gtest/gtest.h"
GTEST_API_ int main(int argc, char **argv) {
  printf("Running main() from gtest_main.cc\n");
  testing::InitGoogleTest(&argc, argv);
  return RUN_ALL_TESTS();
}

然后写一个自己的工程makefile文件,我提供一下我的makefile文件,大家可以仿照这个makefile写自己的makefile文件

CC = gcc
XX = g++
CFLAGS = -W -O0 -fPIC
target = ./run_test

includes = -I ./ \
            -I ../ \
            -I /root/gtest_program/include \

#the a file path 
lib_path = -L ./   \
        -L ../ \
        -L /root/gtest_program/lib

#link lib.a file
lib = -lpthread \
        -lgtest\

INCLUDE := $(includes)

user_dir = ./ \
            ./src
files = $(foreach d, $(user_dir), $(wildcard $(d)/*.cpp))
objects = $(patsubst %.cpp, %.o, $(files))

$(target) : $(objects)
    $(XX)  $^ -o $@  $(lib_path) $(lib)

%.o : %.cpp
    $(XX) $(CFLAGS) $(includes) -c  $^  -g -o  $@  -DLinux

clean : 
    rm -rf $(target)
    rm -rf $(objects)

makefile写好后执行make命令生成可以执行的文件
这里写图片描述

运行:
这里写图片描述

到此为止本篇文章就大概到这里,如果有不明白的地方请留言。转载请注明出去,谢谢!

评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值