- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我做了一个简单的 main 来检查 gtest 是否正确链接并出现“ undefined reference ”错误。 main 函数中的第一行抛出对 `testing::InitGoogleTest(int*, char**)' 的 undefined reference 。
#include <gtest/gtest.h>
int main(int argc, char* argv[])
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
我在 cmake 的帮助下成功构建了一个 gtest Code::Block 项目,没有 pthread 库。然后,我用 MinGW 编译了所有东西。我使用了 libgtest.a libgmock.a 并将它们链接到我的 Code::Block 项目中,没有任何问题。我还指定了包含目录和二进制目录。我是否也需要包含 gtest_main.a?
构建日志(我添加了“...”以隐藏长链文件夹):
"obj\Debug gtest\MainTest.o" -lsfml-graphics-s-d -lsfml-window-s-d -lsfml-network-s-d -lsfml-audio-s-d -lsfml-system-s-d -lglew -lgtest -lgmock -lws2_32 -lopenal32 -lsndfile -lgdi32 -lwinmm -lfreetype -ljpeg -lglu32 -lopengl32 obj\Debug gtest\MainTest.o: In function
main':
testing::InitGoogleTest(int*, char**)' obj\Debug gtest\MainTest.o: In function
D:/.../Templates/SFML 2_2 BasicScene/MainTest.cpp:5: undefined reference toZ13RUN_ALL_TESTSv':
testing::UnitTest::GetInstance()' D:/.../googletest/googletest/include/gtest/gtest.h:2237: undefined reference to `testing::UnitTest::Run()'
D:/.../googletest/googletest/include/gtest/gtest.h:2237: undefined reference to
最佳答案
我终于找到了!这很棘手:因为我使用的是 Windows 7 并安装了多个编译器(3 个版本的 MinGW 和 2 个 TDM),我的 PATH 搞混了。当我使用 cmake-gui 3.3 时,我使用的是默认编译器,当我安装 Code::Blocks 时,它是 MinGW 4.7。安装上面提到的所有编译器后,默认编译器路径更改为更高版本的 MinGW。链接一个用较新版本的 MinGW 编译的库不会导致找不到该库,而是会导致链接错误。
总而言之,我使用的是同一个编译器的两个不同版本。
关于c++ - gtest 和 MinGW 联动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34603163/
类有外部链接吗?如果是这样,为什么我不能让以下内容在 gcc 上工作? // mycpp1.cpp class MyClass { int x; // ...... }; ` // m
我做了一个简单的 main 来检查 gtest 是否正确链接并出现“ undefined reference ”错误。 main 函数中的第一行抛出对 `testing::InitGoogleTest
我是一名优秀的程序员,十分优秀!