谷歌测试“测试框架意外退出错误”

时间:2021-04-02 17:47:53

标签: c++ cmake googletest clion

我使用的是 Mac,我的项目使用 CLion。我正在尝试使用 google 测试框架进行单元测试,但基本示例和演示都抛出此错误:

dyld:找不到符号:__ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13get_allocatorEv
引用自:/path/to/google_tests/cmake-build-debug/Google_Tests_run
预期在:/usr/lib/libstdc++.6.dylib

这是一个抛出此错误的简单项目

组织

  • gtest_test
    • google_tests
      • main.cpp
      • 测试.cpp
      • CMakeLists.txt
    • CMakeLists.txt

CMakeLists.txt (root)

cmake_minimum_required(VERSION 3.17)
project(test_gtest)

set(SOURCE_FILES main.cpp)
add_executable(example ${SOURCE_FILES})

set(CMAKE_CXX_STANDARD 14)
add_subdirectory(Google_tests)

CMakeLists.txt(在 google_tests 中)

project(Google_tests)
add_subdirectory(lib)
include_directories(${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR})

# adding the Google_Tests_run target
add_executable(Google_Tests_run Test.cpp)

target_link_libraries(Google_Tests_run gtest gtest_main)

Main.cpp

int main () {
    return 0;
}

测试.cpp

#include "gtest/gtest.h"

TEST(TestSuite, Test1){ // 12/2/2020 -> 737761
EXPECT_EQ(1, 1);
}

在 lib 内部,我从官方存储库 https://github.com/google/googletest 克隆了代码。

在克隆 CLion google 测试教程 https://github.com/MarinaKalashina/DateConverter_withTests 中使用的存储库时,我遇到了同样的错误。

更新

事实证明这根本不是谷歌测试的问题。我的 gcc 安装是罪魁祸首,我通过运行 brew doctor 发现了这一点,这表明我的 gcc 安装没有链接。链接和升级安装解决了这个问题。我希望这对某人有所帮助。

0 个答案:

没有答案