首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gtest与MinGW联动

gtest与MinGW联动
EN

Stack Overflow用户
提问于 2016-01-05 02:14:36
回答 1查看 624关注 0票数 0

我做了一个简单的main来检查gtest是否正确链接并得到“未定义的引用”错误。主函数的第一行抛出对‘to::InitGoogleTest(int*,char**)’的未定义引用。

代码语言:javascript
复制
#include <gtest/gtest.h>

int main(int argc, char* argv[])
{
     testing::InitGoogleTest(&argc, argv);
     return RUN_ALL_TESTS();
}

在cmake的帮助下,我成功地构建了gtest Code::Block项目,并且没有使用p线程库。然后,我用MinGW编译了所有东西。我取了libgtest.libgmock.a并将它们链接到代码::块项目中,没有任何问题。我还指定了包含目录和二进制目录。我是否也需要包括gtest_main.a呢?

构建日志(我添加了“.”若要隐藏长链文件夹):

"obj\Debug gtest\MainTest.o“-lsfml-图形-s lsfml-window s lsfml-network-s lsfml-system-s-d-d -lsfml-system-s-d -lgtest -lgmock -lws2_32 -lopenal32 -lsndfile -lgdi32 -lwinmm -lfreetype -ljpeg -lopengl32 obj\Debug gtest\MainTest.o:在函数测试中::InitGoogleTest(int*)char**)‘obj\Debug gtest\MainTest.o:在函数Z13RUN_ALL_TESTSv': D:/.../googletest/googletest/include/gtest/gtest.h:2237: undefined reference totesting::UnitTest::GetInstance()’D:/.../googletest/googletest/include/gtest/gtest.h:2237:中,对‘gtest::UnitTest::Run()’的未定义引用

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-06 22:10:29

我终于找到了!这很棘手:由于我使用的是Windows 7并安装了多个编译器(3个版本的MinGW和2个TDM),我的路径被搞混了。当我使用cmak-gui3.3时,我使用的是默认编译器,在安装代码::块时是MinGW 4.7。在安装了上面提到的所有编译器之后,默认的编译器路径更改为更高版本的MinGW。与使用较新版本的MinGW编译的库的链接不会导致找不到库,而是会导致链接错误。

总之,我使用的是同一编译器的两个不同版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34603163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档