日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

gtest 编译、安装和使用

發布時間:2023/12/2 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gtest 编译、安装和使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本例以 gtest-1.7.0 為例進行講解。
一、要求:
1. 安裝 cmake
二、編譯
1. 下載 gtest 源碼包,并解壓,如:/home/hdc/gtest-1.7.0; 2. ?編譯 gtest 動態庫,進入 gtest-1.7.0 目錄,編輯 CMakeLists.txt,修改如下幾行: ?10 option(BUILD_SHARED_LIBS "Build shared libraries (DLLs)." OFF) ? ? ?19 option(gtest_build_tests "Build all of gtest's own tests." OFF) ? ? ?21 option(gtest_build_samples "Build gtest's sample programs." OFF) 將?OFF?修改為?ON,保存并退出。 3. ?創建 build 目錄,并進入該目錄; 4. cmake .. 5. make 6. ls *.so ? ? ?libgtest_dll.so??????????????? libgtest_main_no_rtti.so? libgtest_main_use_own_tuple.so? libgtest.so
? ? ?libgtest_main_no_exception.so? libgtest_main.so????????? libgtest_no_exception.so
7. sudo cp *.so /usr/lib/gtest 8. cd ../include 9. sudo cp -pr gtest /usr/include 10. sudo chown root:root /usr/include/gtest -R 11. sudo chmod u+w /usr/include/gtest -R 12.?sudo mkdir /usr/lib/gtest &&?cd /usr/lib/gtest 13. sudo ln -s libgtest.so libgtest.so.6 14. sudo ln -s libgtest.so libgtest.so.6.0 15. sudo ln -s libgtest_main.so libgtest_main.so.6 16. sudo ln -s libgtest_main.so libgtest_main.so.6.0
三、使用
1. vim func.h
[cpp]?view plaincopy
  • #ifndef?FUNC_C??
  • #define?FUNC_C??
  • ??
  • ??
  • #ifdef?__cplusplus??
  • extern?"C"??
  • {??
  • #endif??
  • ??
  • ??
  • int?fac(int?nInput);??
  • ??
  • ??
  • #ifdef?__cplusplus??
  • }??
  • #endif??
  • ??
  • ??
  • #endif?//?FUNC_C??

  • 2. vim func.c [cpp]?view plaincopy
  • #include?"func.h"??
  • ??
  • ??
  • int?fac(int?nInput)????
  • {????
  • ????if(nInput?<?0)?{???
  • ??????return?-1;??
  • ????}??
  • ??
  • ????int?nRev?=?1;????
  • ????for(int?i?=?1;?i?<=?nInput;?++i){????
  • ??????nRev?*=?i;????
  • ????}????
  • ????return?nRev;????
  • }??

  • 3. vim fac_test.cpp [cpp]?view plaincopy
  • #include?<limits>??
  • #include?"func.h"??
  • #include?"gtest/gtest.h"??
  • ????
  • TEST(Fac_test,?input_negative){????
  • ????EXPECT_EQ(-1,?fac(-1));????
  • ????EXPECT_EQ(-1,?fac(-2));????
  • ????EXPECT_EQ(-1,?fac(-5));????
  • }????
  • ????
  • TEST(Fac_test,?input_zero){????
  • ????EXPECT_EQ(1,?fac(0));????
  • }????
  • ????
  • TEST(Fac_test,?input_positive){????
  • ????EXPECT_EQ(1,?fac(1));????
  • ????EXPECT_EQ(2,?fac(2));????
  • ????EXPECT_EQ(6,?fac(3));????
  • }??

  • 4. vim Makefile [plain]?view plaincopy
  • CC?=?gcc??
  • CPP?=?g++??
  • LINK?=?g++??
  • CFLAGS?=?-g?-Wall?-Werror?-Wextra?-std=gnu99??
  • CPPFLAGS?=?-g?-Wall?-Werror?-Wextra??
  • LIBS?=?-L/usr/lib/gtest?-lgtest?-lgtest_main??
  • ??
  • ??
  • C__SOURCES?=?$(wildcard?*.c)??
  • CPPSOURCES?=?$(wildcard?*.cpp)??
  • OBJECTS?=?$(patsubst?%.c,?%.o,?$(C__SOURCES))?$(patsubst?%.cpp,?%.o,?$(CPPSOURCES))??
  • TARGET?=?sample_unittest??
  • ??
  • ??
  • first:?all??
  • ??
  • ??
  • %.o:?%.c??
  • ????$(CC)?-c?$(CFLAGS)?-o?$@?$<??
  • ??
  • ??
  • %.o:?%.cpp??
  • ????$(CPP)?-c?$(CPPFLAGS)?-o?$@?$<??
  • ??
  • ??
  • all:?$(TARGET)??
  • ??
  • ??
  • $(TARGET):?$(OBJECTS)??
  • ????$(LINK)?$(CPPFLAGS)?$(LIBS)?-o?$(TARGET)?$(OBJECTS)??
  • ??
  • ??
  • .PHONY:?clean??
  • ??
  • ??
  • clean:??
  • ????rm?-f?$(TARGET)?$(OBJECTS)??

  • 5. make 6.?export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/gtest 7. ./sample_unittest

    總結

    以上是生活随笔為你收集整理的gtest 编译、安装和使用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。