gtest学习(一)在linux下的安装
chenxun
一、下载gtest
gtest是google的,被墙了,所以百度自己下载一个版本,我下载的版本如下图所示。
下载完后弄到自己的linux系统上,unzip命令来解压
二、安装部署步骤
1. 第一步进入解压的文件中去如下
没事我们可以浏览一下此目录下文件,
文件夹下好多文件,因为包含各种平台的版本,所以在这里我们只关心linux下的版本。那么我们就进入make目录下,进入make目录我们只看到了一个makefile文件。如果你不熟悉makefile不要紧,请看下面的讲解,你也许能了解一二。
接下来我们运行make命令吧,make编译完成后
好了,关键的的时候到了,这个目录下有一个重要的文件gtest_main.a文件,如果你想看是怎么生成的请看Makefile文件,其主要步骤如下:
gtest-all.o : $(GTEST_SRCS_)
$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c \
$(GTEST_DIR)/src/gtest-all.cc
gtest_main.o : $(GTEST_SRCS_)
$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c \
$(GTEST_DIR)/src/gtest_main.cc
gtest.a : gtest-all.o
$(AR) $(ARFLAGS) $@ $^
gtest_main.a : gtest-all.o gtest_main.o
$(AR) $(ARFLAGS)$@ $^
如果不关心也不要紧,直接把gtest_main.a拿来用就ok了。
2. 建立自己的工程目录
mkdir gtest_program
3. 把第一步中的gtest_main.a文件和include目录移动自己的工程目录下面
cp -r ../gtest-1.7.0/include/ ./
在工程目录下创建lib目录
mkdir lib
cd lib
cp ../../gtest-1.7.0/make/gtest_main.a ./
现在你的lib目录下面有一个gtest_main.a
由于gtest_main.a命令不符合libXXX.a的格式,所以可以做一个软连接(相当于为gtest_main.a起一个别名),键入如下命令
运行ln -s gtest_main.a libgtest
4. 在gtest_program目录下创建自己的src目录
把gtest安装目录下面的例子拷贝到自己的include和src目录下面
命令如下:(注意你自己的文件路劲来cp)
cp ../gtest-1.7.0/samples/sample1.h include/
cp ../gtest-1.7.0/samples/sample1.cc src/sample1.cpp
cp ../gtest-1.7.0/samples/sample1_unittest.cc src/sample1_unittest.cpp
5. 编写的自己的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 = $(foreachd, $(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)
6. 有了自己的makefile文件后自己编译。
7. 好了以上操作过程你搞懂了,那么你基本可以有一套自己的gtest编译环境了,把自己写的头文件和cpp文件搞到include和src文件夹下就可以用自己的makefile来编译了。