gpt4 book ai didi

c++ - 对 `std::thread::_M_start_thread CMake 的基准 undefined reference

转载 作者:行者123 更新时间:2023-11-30 04:56:14 25 4
gpt4 key购买 nike

我想使用 Google Benchmark,为此我在 main.cpp 文件中编写了一个简单的测试。为了构建我的项目,我有一个 CMake 文件,如下所示:

 cmake_minimum_required(VERSION 3.10)

include_directories(${CMAKE_SOURCE_DIR}/include)

find_library(BENCHMARK_LIBRARY NAMES benchmark HINTS "${CMAKE_SOURCE_DIR}/externals/lib")
set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)

# benchmark binary
add_executable(benchmark main.cpp)
target_link_libraries(benchmark ${BENCHMARK_LIBRARY} Threads::Threads)

但每次我运行“make”时都会出现错误:

In function `benchmark::RunSpecifiedBenchmarks(benchmark::BenchmarkReporter*, 
benchmark::BenchmarkReporter*)':
benchmark.cc:(.text+0x214b): undefined reference to `std::thread
::_M_start_thread(std::unique_ptr<std::thread::_State,
std::default_delete<std::thread::_State> >, void (*)())'

我做错了什么?我刚开始使用 CMake,所以我没有太多知识。我搜索但无法找到解决方案。在此先感谢您的帮助。

最佳答案

观察:这是一个链接器错误,代码编译正常,但是当链接器试图将所有对象和库组合成一个可执行文件时找不到符号。

Getting undefined reference to std::thread::_M_start_thread <- 相关问题

您可能安装了多个编译器/库版本,并且正在使用较新的 c++ header 进行编译并链接到较旧的 c++ 库。

关于c++ - 对 `std::thread::_M_start_thread CMake 的基准 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52689627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com