我正在尝试制作“google mock”,但我只得到一个库:gmock_main.a
为什么 gmock.a 没有被生产?生成四个 .o 文件。
谢谢,
巴里。
# 用于构建 Google Mock 和 Google Test 的示例 Makefile 和
# 在用户测试中使用它们。这个文件是独立的,所以你不需要
# 需要使用 Google Test 的源代码树中的 Makefile。请调整
# 它以适合您的环境和项目。你可能想把它移到
# 你项目的根目录。
#
# 简介:
#
# make [all] - 制作一切。
# make TARGET - 生成给定的目标。
# make clean - 删除所有由 make 生成的文件。
# 请根据您的需要调整以下变量定义
# 项目,除了 GMOCK_HEADERS 和 GTEST_HEADERS,你可以使用
# 在你自己的目标中,但不应该修改。
# 指向 Google Test 的根目录,相对于该文件所在的位置。
# 如果你移动这个文件,或者你想使用
# 在不同位置的 Google Test 副本。
GTEST_DIR = ../gtest
# 指向 Google Mock 的根目录,相对于该文件所在的位置。
# 如果你移动这个文件,记得调整这个。
GMOCK_DIR = ..
# 在哪里可以找到用户代码。
USER_DIR = ../测试
# 传递给预处理器的标志。
CPPFLAGS += -I$(GTEST_DIR)/包括 -I$(GMOCK_DIR)/包括
# 传递给 C++ 编译器的标志。
CXXFLAGS += -g -Wall -Wextra
# 此 Makefile 生成的所有测试。记得添加新的测试你
# 创建到列表中。
测试 = gmock_test
# 所有 Google 测试标头。通常你不应该改变这个
# 定义。
GTEST_HEADERS = $(GTEST_DIR)/include/gtest/*.h \
$(GTEST_DIR)/include/gtest/internal/*.h
# 所有 Google Mock 标头。请注意,所有 Google 测试标头都是
# 也包含在此处,因为它们是由 Google Mock 标头#included 的。
# 通常你不应该改变这个定义。
GMOCK_HEADERS = $(GMOCK_DIR)/include/gmock/*.h \
$(GMOCK_DIR)/include/gmock/internal/*.h \
$(GTEST_HEADERS)
# 管理构建目标。
全部:$(测试)
干净的 :
rm -f $(TESTS) gmock.a gmock_main.a *.o
# 构建 gmock.a 和 gmock_main.a。这些库包含
# 谷歌模拟和谷歌测试。测试应与 gmock.a 中的任何一个链接
# 还是 gmock_main.a,取决于它是否定义了自己的 main()
# 功能。如果您的测试仅使用来自 Google 的功能,那很好
# 测试(而不是 Google Mock)。
# 通常你不应该调整这样的内部变量,用 a 表示
# 尾随_。
GTEST_SRCS_ = $(GTEST_DIR)/src/*.cc $(GTEST_DIR)/src/*.h $(GTEST_HEADERS)
GMOCK_SRCS_ = $(GMOCK_DIR)/src/*.cc $(GMOCK_HEADERS)
# 为简单起见,避免依赖于实现细节
# Google Mock 和 Google Test,下面指定的依赖是
# 保守且未优化。这很好,因为 Google Mock 和
# Google Test 编译速度很快,对于普通用户来说他们的源代码很少
# 变化。
gtest-all.o : $(GTEST_SRCS_)
$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) -I$(GMOCK_DIR) $(CXXFLAGS) \
-c $(GTEST_DIR)/src/gtest-all.cc
gmock-all.o : $(GMOCK_SRCS_)
$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) -I$(GMOCK_DIR) $(CXXFLAGS) \
-c $(GMOCK_DIR)/src/gmock-all.cc
gmock_main.o : $(GMOCK_SRCS_)
$(CXX) $(CPPFLAGS) -I$(GTEST_DIR) -I$(GMOCK_DIR) $(CXXFLAGS) \
-c $(GMOCK_DIR)/src/gmock_main.cc
gmock.a : gmock-all.o gtest-all.o
$(AR) $(ARFLAGS) $@ $^
gmock_main.a : gmock-all.o gtest-all.o gmock_main.o
$(AR) $(ARFLAGS) $@ $^
# 构建一个示例测试。
gmock_test.o : $(USER_DIR)/gmock_test.cc $(GMOCK_HEADERS)
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $(USER_DIR)/gmock_test.cc
gmock_test : gmock_test.o gmock_main.a
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -lpthread $^ -o $@