我正在尝试制作“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 $@