【发布时间】:2018-10-07 14:47:23
【问题描述】:
我想使用 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,所以我没有很多知识。我搜索但找不到解决方案。 提前感谢您的帮助。
【问题讨论】:
-
能否请edit 提出您的问题,以便提供准确的
cmake调用以及链接步骤命令行(例如ld调用)?
标签: c++ cmake pthreads google-benchmark