Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 直接使用gtest_main.a?_C++_Makefile_Googletest - Fatal编程技术网

C++ 直接使用gtest_main.a?

C++ 直接使用gtest_main.a?,c++,makefile,googletest,C++,Makefile,Googletest,gtest的示例makefile具有以下代码行 gtest-all.o : $(GTEST_SRCS_) $(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c \ $(GTEST_DIR)/src/gtest-all.cc gtest_main.o : $(GTEST_SRCS_) $(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c \ $(

gtest的示例makefile具有以下代码行

gtest-all.o : $(GTEST_SRCS_)
    $(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c \
            $(GTEST_DIR)/src/gtest-all.cc

gtest_main.o : $(GTEST_SRCS_)
    $(CXX) $(CPPFLAGS) -I$(GTEST_DIR) $(CXXFLAGS) -c \
            $(GTEST_DIR)/src/gtest_main.cc

gtest.a : gtest-all.o
    $(AR) $(ARFLAGS) $@ $^

gtest_main.a : gtest-all.o gtest_main.o
    $(AR) $(ARFLAGS) $@ $^

由于我没有对gtest_main.a所需的文件进行任何更改,我可以在所有makefile中直接使用这个gtest_main.a,而不编写构建步骤吗?我的意思是,一旦生成了gtest_main.a,我就可以始终提供它的路径或在我的项目目录中复制粘贴

我试着直接使用getst_main.a,结果成功了。与我认为应该删除这些行以加快编译速度的观点相反,实际上这并不重要。Makefile会自动检测依赖项是否已修改,如果未修改,则跳过该文件的编译。感谢Beta,转到构建配置并为GTEST_DIR添加环境变量。
解决了我的问题。

不清楚您是在谈论文件还是规则。您是否构建了
gtest\u main.a
?如果是这样,那么只要不修改它的先决条件,就不需要规则。(虽然你为什么不想为它制定规则对我来说是个谜。)我说的是文件。我觉得没有必要一次又一次地建造gtest_main.a!编写良好的makefile不会重建目标,除非确实需要重建;如果您在没有修改真正的先决条件的情况下一遍又一遍地重建库,那么您的makefile就有问题了。你对
gtest all.o
和/或
gtest_main.o
有同样的问题吗?谢谢@Beta我差点忘了!