gtest多平台编译

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里面有对应库文件

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值