Linux平台如何编译使用Google test写的单元测试?
2011-01-16 00:29
573 查看
本博客http://blog.csdn.net/livelylittlefish 贴出作者(三二一@小鱼)相关研究、学习内容所做的笔记,欢迎广大朋友指正!
在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.ccg++ -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.ccar -rv libgtest.a gtest-all.o gtest_main.og++ -I/usr/src/gtest-1.5.0/include -g -c sample.cppg++ -I/usr/src/gtest-1.5.0/include -g -c test.cppg++ -I/usr/src/gtest-1.5.0/include -lpthread test.o sample.o libgtest.a -g -o testclean: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.ccg++ -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.ccg++ -I/usr/src/gtest-1.5.0/include -g -c sample.cppg++ -I/usr/src/gtest-1.5.0/include -g -c test.cppg++ -I/usr/src/gtest-1.5.0/include -lpthread test.o sample.o gtest-all.o gtest_main.o -g -o testclean:rm test *.o 正式版本 # Google Test directoryGTEST_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 sourcesGTEST_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平台如何编译单元测试的代码?(请参考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.ccg++ -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.ccar -rv libgtest.a gtest-all.o gtest_main.og++ -I/usr/src/gtest-1.5.0/include -g -c sample.cppg++ -I/usr/src/gtest-1.5.0/include -g -c test.cppg++ -I/usr/src/gtest-1.5.0/include -lpthread test.o sample.o libgtest.a -g -o testclean: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.ccg++ -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.ccg++ -I/usr/src/gtest-1.5.0/include -g -c sample.cppg++ -I/usr/src/gtest-1.5.0/include -g -c test.cppg++ -I/usr/src/gtest-1.5.0/include -lpthread test.o sample.o gtest-all.o gtest_main.o -g -o testclean:rm test *.o 正式版本 # Google Test directoryGTEST_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 sourcesGTEST_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
相关文章推荐
- Win32平台如何编译使用Google test编写的单元测试?
- Linux下使用googletest的两个编译选项
- 在Linux平台下如何编译一个C++工程
- linux下交叉编译libusb的方法及编译一个使用了libusb库的test程序的方法
- Linux下Google Test测试环境安装和使用,实战总结
- Linux系统平台下关于GCC编译及使用的方法(-Werror,它要求GCC将所有的警告当成错误进行处理 )
- Google的开源C++单元测试框架Google Test使用教程
- 在Linux平台如何编译单元测试的代码(转)
- Linux学习笔记——如何使用共享库交叉编译
- Linux - Unix环境高级编程(第三版) 源代码编译(即头文件apue.h如何使用问题)【转】
- 如何为Android平台编译 opencv3 和 opencv_contrib (Linux)
- 如何用googletest写单元测试
- 单元测试 Google Test 使用
- arm-linux-gcc-4.4.3交叉编译google的protobuf。以及使用方法
- Linux系统平台下关于GCC编译及使用的方法
- 如何在linux编译和使用ACE
- 嵌入式linux上Google breakpad编译使用
- 如何用googletest写单元测试
- 在Linux平台上如何使用接静态库和共享库
- Linux学习笔记——如何在交叉编译时使用共享库