【IOS】在XCode4.2环境中配置gtest环境

[c++]Xcode配置gtest Xcode配置gtest1、准备工作: gtest:gtest github 下载,本人下载最新版1.7.0。2、打开gtest文件夹,在XCODE文件夹中打开工程,编译:     (1)architectures选项选择universal。编译结束后会出来三个文件:一个framework,两个.a静态库文件 3、新建工程,我测试用的是控制台程序。由于控制台无法加载framework,因此引入 阅读详情
1. 下载gtest安装包,地址:http://code.google.com/p/googletest/downloads/list
2. 参考说明:http://code.google.com/p/googletest/wiki/V1_6_XcodeGuide
3. 详细步骤及问题

3.1 编译gtest.framework
A)根据readme,在安装包目录googletest-read-only/xcode/下打开工程文件gtest.xcodeproj
B)编译gtest.framework


【Q1】根据说明,直接build,build失败,报错:The run destination My Mac 64-bit is not valid for Running the scheme 'gtest-framework'. The scheme 'gtest-framework' contains no buildables that can be built for the SDKs supported by the run destination My Mac 64-bit. Make sure your targets all specify SDKs that are supported by this version of Xcode.
【A1】
修改工程中的General.xcconfig
// Default SDK and minimum OS version is 10.4
SDKROOT = $(DEVELOPER_SDK_DIR)/MacOSX10.7.sdk
MACOSX_DEPLOYMENT_TARGET = 10.7
工程设置中修改SDK为10.7, Compiler设置为默认的编译器;


【Q2】仍然编译错误,提示有个变量未使用
【A2】选择编译器为LLVM GCC 4.2


3.2 添加gtest.framework到工程中。
这里有两种方式可以实现这个动作:
A。把3.1编译出来的gtest.framework添加到目标工程中,"Add->Existing Framework..." 或 "Project->Add..." ; gtest.framework中包含.h文件和Objc code。
B。把gtest.xcodeproj添加到目标工程中,作为工程依赖关系。


3.3 开始Test Target
在XCode中创建一个"Shell Tool" target;
添加gtest.framework到target中,根据3.2,有两种方式:
A. Add the gtest.framework to the "Link Binary with Libraries" build phase of your test target.
B. add gtest.framework to your "Link Binary with Libraries" build phase of your test target;

【Q3】"Shell Tool" target这种模式,在最新的XCode中已经没有了,无法建立相应的target
【A3】这种方式无效。需要直接建立xcode工程去build。
用Command line tool替换,同样可以实现。

3.4 build Target 
添加好gtest工程后,直接Build
【Q4】build失败
【A4】设置工程的search header path,添加gtest的头文件地址。


3.5 修改main文件
在main函数中执行如下代码:
std::cout << "Running main() from gtest_main.cc\n";    
testing::InitGoogleTest(&argc, argv);


【Q5】main函数编译错误
【A5】include gtest.h; 修改参数 const char * argv[]  ->  char * argv[]


3.6 编写unit test方法
新建test.cpp, 内容如下:


TEST(SampleTest, Zero) {
    EXPECT_EQ(0, 0);
}
。。。。


3.8 执行Target
输出结果如下:
Running main() from gtest_main.cc
[==========] Running 3 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 3 tests from SampleTest
[ RUN      ] SampleTest.Zero
[       OK ] SampleTest.Zero (0 ms)
[ RUN      ] SampleTest.Positive
[       OK ] SampleTest.Positive (0 ms)
[ RUN      ] SampleTest.Negative
[       OK ] SampleTest.Negative (0 ms)
[----------] 3 tests from SampleTest (0 ms total)


[----------] Global test environment tear-down
[==========] 3 tests from 1 test case ran. (0 ms total)
[  PASSED  ] 3 tests.
C++开发工具链全解析:从IDE到调试器,构建高效编程环境 在软件开发领域,工具链是连接代码与最终产品的核心桥梁,直接影响开发效率和软件质量。其原理在于通过一系列自动化工具,将源代码转化为可执行程序,并辅助开发者进行调试、测试与优化。对于C++这类复杂且高性能的语言,工具链的价值尤为突出,它不仅能提升编译速度、优化内存管理,还能通过静态分析预防潜在缺陷。在实际应用中,从集成开发环境(IDE)的选择到编译器的配置,再到调试工具的使用,每个环节都关乎项目的成败。本文聚焦于C++开发中的核心工具,深入探讨Visual Studio、VSCode等主流IDE的优劣,以及GC 阅读详情

相关推荐

CLion实战:基于CMake构建跨平台C++日志库

CMake作为C/C++跨平台构建的事实标准,通过抽象项目描述与本地构建工具,实现了“一次编写,到处构建”的核心价值。其原理在于将平台差异封装在生成器(如Makefiles、Visual Studio解决方案)中,开发者只需维护统一的CMakeLists.txt。这种模式极大提升了工程实践效率,尤其在开发需要部署于Windows、Linux、macOS等多环境的应用程序时,例如日志系统、网络服务等基础组件。CLion作为深度集成CMake的智能IDE,将代码分析、重构、调试与跨平台构建无缝衔接,提供了统一的

weixin_33845881的博客 489

使用gtest做单元测试

使用gtest做单元测试 文章目录使用gtest做单元测试1.用gtest写测试工程的大致流程配置gtest头文件及库gtest的相关概念TEST与TEST_F断言事件机制参考 gtest是一个跨平台的(Liunx、Mac OS X、Windows 、Cygwin 、Windows CE and Symbian ) C++单元测试框架,由google公司发布。gtest是为在不同平台上为编写C++测试而生成的。它提供了丰富的断言、致命和非致命判断、参数化、”死亡测试”等等 1.用gtest写测试工程的大致流

hu_hao的博客 4503

2024年C++开发工具链全解析:从编译器到测试框架的实战指南

在C++开发中,一个高效、现代化的工具链是提升工程效率和代码质量的核心基础。其工作原理是通过一系列专业化工具协同工作,将源代码转化为可靠的可执行程序。这套工具链的技术价值在于,它不仅能自动化处理编译、构建、调试等复杂流程,还能通过静态分析、自动化测试等手段,在开发早期发现潜在缺陷,从而显著降低维护成本并提升软件健壮性。典型的应用场景包括跨平台应用程序开发、高性能计算、系统编程以及大型项目的持续集成与交付。本文将聚焦于构建此类高效工作流,深入探讨以**CMake**为代表的现代构建系统如何管理项目依赖与构建过

weixin_30580341的博客 378

gtest使用初级指南

gtest使用初级指南

网络资源是无限的 3813

xcode-googletest:谷歌测试与 Xcode 的集成

谷歌测试与 Xcode 集成 该项目演示了两种将 Google Test C++ 单元测试库与 Xcode 集成的方法: 独立的可执行文件 这是使用 Google Test 时看到的更典型的设置,但不提供与 Xcode 的单元测试 UI 的集成。 它由“独立”目标说明。 Google Test 库既可以作为框架单独构建,也可以作为静态库构建,如本项目所示。 框架或静态库链接到包含所有单元测试的命令行工具,并且在运行此工具时会生成典型的 Google 测试输出。 要将测试作为Xcode构建的一部分运行并获得故障的内联报告,请添加一个运行脚本阶段,该阶段从其构建位置执行该工具。 独立目标演示了这一点,构建时该工具将作为构建的一部分执行,任何测试失败都将在代码中内嵌突出显示并出现在问题导航器中。 要在这样的配置中调试失败的测试,您可以通过扩展脚本阶段并启用“仅在安装时运行脚本”选项来暂时禁用

How to install Gtest On MacOS and Xcode(如何在MacOS上安装gtest以及XCode使用gtest)

How to install Gtest On MacOS git clone https://github.com/google/googletest.git cd googletest makedir build && cd build cmake -DCMAKE_CXX_STANDARD=17 .. make sudo make install ######test mkdir gtestDemo vi CMakeList.txt echo “export CPLUS_INCLUDE_PATH=/usr/local/include >> ~/.zshrc echo export

xcode上使用gtest

xcode上使用gtest这个配置搞了一下。感觉网上的文章比较的不清楚,因此留一个纪录下来。 1、首先第一个,从网上下载test的文件:https://github.com/google/googletest/archive/master.zip 2、用xcode编译,会产生3个文件,一个是gtest.framework 一个是libgtest.a  还有一个 libgtes

liyu355的博客 1213

10.2 在新能源、储能及电网节点的应用实践

构网型变流器技术在电力系统中的应用进展 构网型变流器技术正从理论研究走向规模化工程应用,为新能源并网提供主动支撑能力。该技术在光伏电站采用"部分构网"混合架构,由构网单元实现黑启动和弱网稳定;在风电场利用叶轮动能提供惯量响应。储能系统是理想的构网载体,可提供快速调频和动态电压支撑。在电网节点,构网型STATCOM可增强弱电网电压稳定性,大容量变流器可替代传统调相机。当前面临标准滞后、宽频振荡风险等共性挑战,需在可靠性、经济性间取得平衡。系统级协调控制和精确阻抗建模是应用成功的关键。

技术工作者 1109

XCode+gtest快速搭建接口测试工程

XCode上做接口测试有两个比较好的选择,一个是gtest,另一个是XCtest。因为gtest的平台支持更为多元,所以采用gtest框架 第一步:build gtest framework     下载gtest,直接命令行 svn checkout http://googletest.googlecode.com/svn/trunk/ googletest-read-only     去

不悲过往,不畏前路 2075

菜鸟-需求预测与分仓规划

通过修改模型的损失函数对问题进行求解,比其它单模型的效果好很多。

永不理解_fdu的博客 4881

Maxwell中铜导体热损计算的关键步骤与技巧

本文详细介绍了在Maxwell软件中准确计算铜导体热损的关键步骤与实用技巧。重点阐述了如何正确设置涡流场求解器、启用涡流效应、根据工作频率计算并应用肌肤深度以指导网格剖分,以及准确施加激励和定义电流回路。文章还强调了使用温度相关材料属性和进行后处理验证的重要性,旨在帮助工程师获得可靠的热损计算结果,优化产品设计。

weixin_29232121的博客 496

环境配置三:Xcode Version 6.4 gtest环境搭建

工作需要使用gtest进行单元测试。本人所用开发环境为XCODE6.4,亲测有效。 1、准备工作: gtest:https://code.google.com/p/googletest/ 下载,本人下载最新版1.7.0,之后解压 XCODE6.4 2、打开gtest文件夹,在XCODE文件夹中打开工程,编译:     (1)architectures选项选择universal。。。 编

hitfyb的博客 1182

时序基础模型Timer-S1:十亿参数如何革新时间序列预测

时间序列预测是数据分析与机器学习中的核心任务,旨在基于历史数据预测未来趋势。其原理在于捕捉数据中的趋势、周期性和季节性等时序依赖关系。这项技术的价值在于赋能业务决策,广泛应用于金融风控、能源管理、物联网监控和供应链优化等关键场景。传统方法依赖针对特定任务的专用模型,面临泛化能力弱和开发成本高的挑战。本文聚焦的时序基础模型,通过在海量跨领域数据上进行预训练,学习时序通用模式,并结合十亿级参数带来的强大容量,实现了性能的显著突破。这种范式转变,使得模型能够像“全科医生”一样,通过少量数据微调即可快速适应新任务,

weixin_29164843的博客 269

IOS开发Git在Xcode开发环境下的使用

IOS开发Git在Xcode开发环境下的使用 从零开始学习如何配置 简单描述   git是一种分布式版本控制系统,具体的概念,网上有,我今天主要将在iOS开发过程中的简单配置和使用,使大家能够快速的使用这个工具。Git的配置有两部分,先是在github上的有关操作,再者是在开发工具xcode上的有关操作。 顺序是:     在github上的操作 1.  注册,在githu

coder的专栏 963

Plot3d 网格数据格式

PLOT3D是一个计算机图形程序,旨在可视化计算流体力学的网格和解决方案。PLOT3D文件可以是ASCII, 也可是Fortran unformatted 或 C binary形式。PLOT3D文件分为网格文件(XYZ 文件), 空气动力学结果文件 (Q 文件)和通用结果文件(函数文件 + 函数名称文件)。网格文件中可加入所谓的IBlank参数。

weixin_62592231的博客 3720

Ubuntu的初步环境配置(VMware)

4.屏幕显示不全解决完后,在试用Ubuntu里面,直接双击“安装Ubuntu 20.04.6 LTS”。如果不存在“屏幕显示不全”的问题,直接点击安装即可,大致安装步骤与以下步骤类似。15.点击现在重启,重启成功后,会出现“清除安装介质”的问题。19.此时点开火狐,可以上网,但只可输入英文,不可以输入中文,具体解决方法见3.2。3.进入安装界面,此时可能会出现“屏幕显示不全”的问题,具体解决方法见3.1。8.选择“正常安装”、“安装Ubuntu时下载更新”,点击继续。最后,点击保留更改,设置成功。

森菌蛙诺的博客 2276

iOS 真机测试

1:进入苹果开发者平台 https://developer.apple.com 2:进入Member Center 3:输入开发者账号和密码 4:选择:Certificates, Identifiers & Profiles 5:选择Certificates 6:点击加号创建一个证书 证书分两种,Developm

-此夜微凉 596

JavaSwing_1.1: FlowLayout(流式布局)

FlowLayout,流式布局管理器。按水平方向依次排列放置组件,排满一行,换下一行继续排列。

谢TS的博客 7万+

【原】IOS合并lib(.a)库的终极可用方法(可用于解决duplicate symbol静态库冲突)

网上流传了太多关于合并lib库的方法,自己也尝试过,但大多失败。有感于这种急于解决问题,经过百般尝试后依旧无果的无奈心情,小翁在这里用一个实例来完整阐述如何在mac中合并lib静态库。 这里以移动广告平台多盟的三个lib库为例子,之所以以此为例子,是因为我也遇到了库冲突的问题,所以才有了本文的内容。 本文的目标:合并libDomobOfferWallSDK.a、libDomobAdWallCo...

weixin_30700099的博客 95

结构力学仿真软件:STAAD.Pro:结构抗震设计与STAAD.Pro应用_2024-08-10_11-49-29.Tex

STAAD.Pro是一款广泛应用于结构工程领域的仿真软件,由Bentley Systems开发。它能够进行结构分析和设计,支持多种结构类型,包括桥梁、建筑物、塔架等。STAAD.Pro提供了强大的建模工具,用户可以轻松创建复杂的结构模型,并进行静态和动态分析。软件还支持多种载荷组合,包括地震载荷,以及提供详细的报告和图纸输出,便于工程师进行设计和审查。STAAD.Pro是一款广泛应用于结构工程设计的软件,其界面直观,功能强大,能够进行结构分析与设计。菜单栏。

976

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

EMQX OpenTelemetry 集成新增 HTTP Header 自定义配置:适配带认证的 Collector

本文介绍 EMQX 在 OpenTelemetry 集成(`emqx_opentelemetry` 应用)中新增的 `exporter.headers` HTTP 头配置项:该功能允许为导出的 OpenTelemetry 信号(Metrics / Traces / Logs)附加自定义 HTTP 请求头,用于适配启用了 HTTP 认证(如 API Token、Basic Auth、自定义鉴权)的

gitblog_00061的博客 721

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C++测试驱动开发实战:7大模式与工业级项目落地策略

测试驱动开发是一种以测试为先导的软件开发范式,其核心在于通过“红-绿-重构”的循环,确保代码质量与设计清晰度。在C++这类高性能但易出错的系统级语言中,TDD能有效提升代码健壮性,降低维护成本。其技术价值在于将测试从验证工具转变为设计工具,通过编写测试用例来驱动接口设计,并固化需求。应用场景广泛,从基础算法模块到大型系统集成均可受益。本文聚焦于C++工业级项目,针对**遗留代码**与**编译依赖**等典型挑战,系统解析了包括经典单元测试、基于契约测试、黄金文件等在内的7种实战模式,并提供从技术选型到团队文化

weixin_34021089的博客 343

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

熟练使用 LLDB

转自:http://ios.jobbole.com/83393/ LLDB是Xcode默认的调试器,它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能。平时用Xcode运行程序,实际走的都是LLDB。熟练使用LLDB,可以让你debug事半功倍。 LLDB基础知识 LLDB控制台 Xcode中内嵌了LLDB控制台,在Xcode中代码的下方,我们可以看到

lovenjoe的专栏 1010

[mac]xcode配置说明--gtest&mysql

xcode配置本文介绍如何在mac上引入gtest和mysql两个工具。这是我最近做项目所需要的东西,研究了很久,最后终于解决了,在这里给大家介绍以下~gtest在Xcode上配置如下: 把gtest里面编译好的两个静态文件放在gtest文件夹里面。就可以进行gtest测试了:#include <stdio.h> #include "gtest/gtest.h" TEST(MyFirstTest,

stary_yan的博客 1333

XCode使用googletest(包括googlemock)

1. 下载最新的googletest源代码,也可以从此处下载:https://pan.baidu.com/s/1qRn5BCpUIBz_PY0m6-7pgg 2. 解压后进入googletest/make,执行make,copy libgtest.a到/usr/local/lib,并copy include/gtest目录到/usr/local/include; 然后进入googlemock/...

运用之妙,存乎一心 3490

gtest的使用 (android)

Android.mk LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_CPP_EXTENSION := .cc LOCAL_MODULE := gtest2 LOCAL_MODULE_CLASS := EXECUTABLES LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES

tuhuolong的专栏 3355
上一篇: 【IOS】工程编译中常见问题
下一篇: 【XMPP】client 连接server的过程
StreamH
博客等级 码龄21年 47粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值