我正在尝试编译一个依赖于 Libtorch (Pytorch) 库的谷歌基准测试。我已经安装了Google Benchmark,因此make install据我了解,我应该能够使用 find_package() 来添加两个依赖项。最后我添加了一些编译器标志。
这是我的 CMakeLists.txt:
cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
project(learned_b VERSION 1.0)
add_executable(PROJECT_NAME learned_benchmark.cpp)
find_package(Torch REQUIRED)
find_package(benchmark REQUIRED)
target_link_libraries(PROJECT_NAME "${TORCH_LIBRARIES}")
target_include_directories(PROJECT_NAME PUBLIC "${benchmark_INCLUDE_DIRS}")
target_link_libraries(PROJECT_NAME "${benchmark_LIBRARIES}")
SET(GCC_LINK_FLAGS "-isystem /Users/yhr/Programs/benchmark/include -lbenchmark -pthread")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_LINK_FLAGS}")
set_property(TARGET PROJECT_NAME PROPERTY CXX_STANDARD 11)
Run Code Online (Sandbox Code Playgroud)
应该注意的是,无论有没有 GCC_LINK_FLAGS,我总是会收到致命错误:找不到“benchmark/benchmark.h”文件。我的代码在仅依赖于 Pytorch 时正在编译和运行。是否可以将 find_package 与 google benchmark 一起使用?如果不是,我该如何正确处理这个问题?
编辑1:
这是我运行过的命令。
$ cd build
$ cmake -DCMAKE_PREFIX_PATH='/Users/yhr/Programs/libtorch;/Users/yhr/Programs/benchmark' ..
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/yhr/Programs/learnedbloomfilters/OpenBloomFilter
$ cd …Run Code Online (Sandbox Code Playgroud)