我正在尝试编译googletest (git克隆https://github.com/google/googletest.git -b release-1.11.0),但是继续获取1000+链接器错误。
我运行windows 10,eclipse (最新),mingw (最新) gcc。我创建了一个eclipse c++项目(可执行的、空的项目)。
增加的包括到以下方面的路径:
将源位置添加到:
所有的编译都没有问题,但是链接与1000+错误失败。例如:
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
googletest\gtest.o: in function `testing::IsNotSubstring(char const*, char const*, wchar_t const*, wchar_t const*)':
C:\dev\unode\eclipse\unit_tests\Debug/../../googletest/googletest/src/gtest.cc:1821: multiple definition of `testing::IsNotSubstring(char const*, char const*, wchar_t const*, wchar_t const*)';
googletest\gtest-all.o:C:/dev/unode/eclipse/googletest/googletest/src/gtest.cc:1821: first defined here
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
googletest\gtest.o: in function `testing::IsSubstring(char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
C:\dev\unode\eclipse\unit_tests\Debug/../../googletest/googletest/src/gtest.cc:1827: multiple definition of `testing::IsSubstring(char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)';
googletest\gtest-all.o:C:/dev/unode/eclipse/googletest/googletest/src/gtest.cc:1827: first defined here
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
googletest\gtest.o: in function `testing::IsNotSubstring(char const*, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':我正在阅读googletest readme.md来找出我做错了什么,但却一无所获。如能提供一些帮助,将不胜感激。
发布于 2021-12-17 18:33:29
啊,有一个文件googletest/src/gtest-all.cc
其中包括所有源文件。所以所有源文件都编译了两次,删除这个文件解决了我的问题。
https://stackoverflow.com/questions/70397103
复制相似问题