Linux平台如何编译使用Google test写的单元测试?
来源:互联网 发布:js隐藏html标签 编辑:程序博客网 时间:2024/04/28 19:36
在Linux平台如何编译单元测试的代码?(请参考readme文件)
Step1. 编译gtest-all.cc和gtest_main.cc文件
g++ -I${GTEST_DIR}/include -I${GTEST_DIR} -c ${GTEST_DIR}/src/gtest-all.cc
g++ -I${GTEST_DIR}/include -I${GTEST_DIR} -c ${GTEST_DIR}/src/gtest_main.cc
Step2. 将step1生成的gtest-all.o和gtest_main.o打包成静态库libgtest.a
ar -rv libgtest.a gtest-all.o gtest_main.o
Step3. 编译要测试的代码(假设文件名为sample.cpp)
g++ -I${GTEST_DIR}/include -c sample.cpp
Step4. 编译单元测试的代码(假设文件名为test.cpp)
g++ -I${GTEST_DIR}/include -c test.cpp
Step5. 与libgtest.a或其他需要的库链接、生成可执行程序
g++ -I${GTEST_DIR}/include test.o sample.o libgtest.a -o test
其他的库,如pthread库。
Where, GTEST_DIR=/usr/src/gtest-1.5.0
编写的makefile文件如下。
简单版本
all:
g++ -I/usr/src/gtest-1.5.0/include -I/usr/src/gtest-1.5.0 -g -c /usr/src/gtest-1.5.0/src/gtest-all.cc
g++ -I/usr/src/gtest-1.5.0/include -I/usr/src/gtest-1.5.0 -g -c /usr/src/gtest-1.5.0/src/gtest_main.cc
ar -rv libgtest.a gtest-all.o gtest_main.o
g++ -I/usr/src/gtest-1.5.0/include -g -c sample.cpp
g++ -I/usr/src/gtest-1.5.0/include -g -c test.cpp
g++ -I/usr/src/gtest-1.5.0/include -lpthread test.o sample.o libgtest.a -g -o test
clean:
rm test libgtest.a *.o
实际上,其中将gtest-all.o和gtest_main.o压缩为libgtest.a库,可以省去,直接使用.o文件,如下。
all:
g++ -I/usr/src/gtest-1.5.0/include -I/usr/src/gtest-1.5.0 -g -c /usr/src/gtest-1.5.0/src/gtest-all.cc
g++ -I/usr/src/gtest-1.5.0/include -I/usr/src/gtest-1.5.0 -g -c /usr/src/gtest-1.5.0/src/gtest_main.cc
g++ -I/usr/src/gtest-1.5.0/include -g -c sample.cpp
g++ -I/usr/src/gtest-1.5.0/include -g -c test.cpp
g++ -I/usr/src/gtest-1.5.0/include -lpthread test.o sample.o gtest-all.o gtest_main.o -g -o test
clean:
rm test *.o
正式版本
# Google Test directory
GTEST_DIR = /usr/src/gtest-1.5.0
# Flags passed to the preprocessor.
CPPFLAGS += -I$(GTEST_DIR)/include
# Flags passed to the C++ compiler.
CXXFLAGS += -g -Wall -Wextra
# All Google Test headers. Usually you shouldn't change this definition.
GTEST_HEADERS = $(GTEST_DIR)/include/gtest/*.h $(GTEST_DIR)/include/gtest/internal/*.h
# All Google Test sources
GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_HEADERS)
# All tests produced by this Makefile. Remember to add new tests you created to the list.
TESTS = test
all : $(TESTS)
clean :
rm -f $(TESTS) gtest.a gtest_main.a *.o
gtest-all.o : $(GTEST_DIR)/src/gtest-all.cc # $(GTEST_SRCS_)
$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c $(GTEST_DIR)/src/gtest-all.cc
gtest_main.o : $(GTEST_DIR)/src/gtest_main.cc # $(GTEST_SRCS_)
$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c $(GTEST_DIR)/src/gtest_main.cc
gtest_main.a : gtest-all.o gtest_main.o
$(AR) $(ARFLAGS) $@ $^
sample.o : sample.cpp sample.h $(GTEST_HEADERS)
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c sample.cpp
test.o : test.cpp sample.h $(GTEST_HEADERS)
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c test.cpp
test : sample.o test.o gtest_main.a
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $@
$^代表依赖项,$@代表目标。
Reference
Readme
Makefile of sample
Technorati 标签: 单元测试;google test
- Linux平台如何编译使用Google test写的单元测试?
- Win32平台如何编译使用Google test编写的单元测试?
- 如何使用google test写单元测试?
- Google Test单元测试使用
- 单元测试 Google Test 使用
- 在Linux平台如何编译单元测试的代码(转)
- Qt使用Google Test 单元测试
- 如何编译google test的例子?
- 推荐:一个写的相当好的介绍C++单元测试框架Google Test (gtest) 教程
- Google开源C++单元测试框架Google Test(gtest)在C++Builder(xe5)下的使用-1
- google test的使用
- 如何使用VSTS写单元测试
- 如何使用VSTS写单元测试
- 如何使用VSTS写单元测试
- Google的开源C++单元测试框架Google Test初探
- Google的开源C++单元测试框架Google Test初探
- Google的开源C++单元测试框架Google Test
- 解决“使用google test做单元测试(unit test)中访问类的私有成员”的几种方法
- 如何使用google test写单元测试?
- 网页消息提示框
- 修改Tomcat的默认主页
- Dongxiexidu
- 体育参数检验方法之一 T检验
- Linux平台如何编译使用Google test写的单元测试?
- 怎样写 Linux LCD 驱动程序
- Dongxiexidu
- EL表达式中fn函数的强大功能,很简单,很好用,很强大
- 2.6内核设备模型
- 毕业5年决定你的一生
- 新浪微博体验报告 -- 做一个懂设计的程序员
- 特种设备检验软件 特检软件 特检报告管理系统Web版SEI-RS
- Apache负载均衡设置方法: mod_proxy