【问题标题】:Run gtest/gmock on local directory在本地目录上运行 gtest/gmock
【发布时间】:2020-06-15 19:45:13
【问题描述】:

我正在尝试将 gtest/gmock 安装在我的本地目录上,而不是 /usr/lib 上,静态库通常驻留在那里。

我已经编译好libgmock.a libgmock_main.a libgtest.a libgtest_main.a,放到我的工作目录下,如何包含头文件和Makefile?

【问题讨论】:

  • “包含 Makefile”是什么意思?您是否打算将其集成到应用程序的构建系统中?如果是这样,我们需要更多地了解您的构建系统?
  • 我正在做一个需要 gtest/gmock 的项目。我想安装在dev分支和/hao目录下,不影响外界。之所以要隔离,是因为在与/hao并行的/jiang目录下,已经有老版本的gtest/gmock,无法访问和使用。当我尝试编译我的测试文件时,编译器错误“gtest/gtest.h not found”。

标签: c++ static-libraries googletest googlemock


【解决方案1】:

您需要将-I<path to gtest/gtest.h> 添加到您的编译器调用中(例如CXXFLAGS 环境变量)。此目录不在系统范围的包含路径中,因此您必须明确指定它。

【讨论】:

  • 我现在要做的是在我的源代码中#include 然后我的makefile是CC = g++ CFLAGS = -std=c++17 -lgtest -lgtest_main -pthread 导出 GTEST_HOME="googletest/googletest/include;googletest/googlemock/include" 导出 LIB_HOME="googletest/lib" 测试:testfile.cpp $(CC) -o test_out -I $(GTEST_HOME) -L $(LIB_HOME) testfile.cpp $(CFLAGS) 对于当前目录,在“googletest/googletest/include/gtest”下有 gtest.h 并且在“googletest/googletest/include/gmock.h”下但是仍然得到“gtest.h: No such文件或目录”
  • 注意需要设置CXXFLAGS而不是CFLAGS
  • 嗯,我觉得CXXFLAGS和CFLAGS只是符号,会被替换成实际的内容?
  • 顺便说一句:编辑您的问题以包含其他信息通常是个好主意。与 cmets 相比,这里允许使用多行代码块。
  • 对不起,我真的不知道如何将我的 makefile 格式化为代码块
猜你喜欢
  • 2018-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多