Windows
1、从github上down代码:https://github.com/google/googletest (下载release版本的tag包)
2、进入googletest文件夹googletest-release-1.8.0\googletest\msvc文件夹,使用VS2013打开gtest.sln,一路默认确定。
3、分别在DEBUG和RELEASE版本下编译gest和gtest_main ,编译成功后在 msvc/gtest 下生成debug和release两个文件夹
4、googletest-release-1.8.0\googletest\目录下创建lib文件夹,拷贝出gtestd.lib、gtest_maind.lib、gtest.lib、gtest_main.lib到该文件夹下(与include同级)。
5、创建测试程序,工程属性中添加头文件路径 E:\VS_PRO\googletest-release-1.8.0\googletest-release-1.8.0\googletest\include;
6、运行库选择多线程调试(MTD)
7、链接器输入中添加调用的库gtestd.lib;gtest_maind.lib;gtest.lib;gtest_main.lib;
8、链接器常规中添加附加库目录E:\VS_PRO\googletest-release-1.8.0\googletest-release-1.8.0\googletest\lib;
Linux
方式一
1.安装Cmake,红帽下直接yum -y install cmake
2.进入googletest目录下,cmake CMakeLists.txt
3.make执行make,生成两个静态库:libgtest.a libgtest_main.a
4.将libgtest.a拷贝到自己的目录中g++ test.cpp -I ./include/ -L./ -ladd -lgtest -lpthread -o test
安卓
NDK安装
使用NDK交叉编译gtest
1.在googlegtest文件夹下创建jni目录 ,创建如下文件Android.mk和Application.mk
Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_CPP_EXTENSION := .cc
LOCAL_MODULE := gtest_main #gtest
LOCAL_C_INCLUDES := ../include .
LOCAL_SRC_FILES := ../src/gtest_main.cc #gtest-all.cc
LOCAL_CPPFLAGS := -w -fpermissive -frtti --std=c++11
include $(BUILD_STATIC_LIBRARY)
#include $(BUILD_SHARED_LIBRARY) #生成动态库
Application.mk:
APP_ABI := armeabi-v7a arm64-v8a
APP_PLATFORM := android-29
APP_MODULES := libgtest_main #libgtest
APP_STL := c++_static
NDK_TOOLCHAIN_VERSION := clang
2.在jni目录下打开cmd,执行
D:\software\android-ndk-r21\ndk-build
3.在\obj\local\arm64-v8a目录下生成对应的库文件。
4.在 jni中创建 测试程序,修改上面两个mk文件。
5.
LOCAL_PATH := $(call my-dir)
PRJ_INC_PATH := $(call my-dir)/../include
PRJ_LIB_PATH := $(call my-dir)/../libs
include $(CLEAR_VARS)
LOCAL_MODULE := gtest_main
LOCAL_SRC_FILES := ./../libs/libgtest_main.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := gtest
LOCAL_SRC_FILES := ./../libs/libgtest.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := jxtest
LOCAL_SRC_FILES := testMain.cpp
LOCAL_STATIC_LIBRARIES := gtest_main gtest
LOCAL_C_INCLUDES := $(LOCAL_PATH)/ $(PRJ_INC_PATH)/ $(PRJ_LIB_PATH)/$(warning including path: $(LOCAL_C_INCLUDES))
include $(BUILD_EXECUTABLE)
APP_ABI := arm64-v8a
APP_PLATFORM := android-29
APP_STL := c++_static
方式二
1.在googletest同级目录下,创建build文件夹,并进入
2.执行cmake -DCMAKE_TOOLCHAIN_FILE=XXX -DANDROID_ABI="arm64-v8a"
-DANDROID_PLATFORM=android-22 -DANDROID_TOOLCHAIN=clang -DANDROID_STL=gnustl_static ..
3.make
4.build目录下生成lib里面有对应库文件