gpt4 book ai didi

cmake:将库添加到所有目标

转载 作者:行者123 更新时间:2023-12-04 12:45:26 27 4
gpt4 key购买 nike

这是我可行的 CMakelists.txt。基准库位于/usr/local/lib/libbenchmark.a 中,它是使用 google benchmark 中的标准过程构建的。

cmake_minimum_required(VERSION 3.5.1)
project(tiny_benchmark)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED on)
set(CMAKE_CXX_EXTENSIONS off)
set(CMAKE_EXPORT_COMPILE_COMMANDS on)
# set(CMAKE_STANDARD_LIBRARIES ${CMAKE_STANDARD_LIBRARIES} pthread benchmark /usr/local/lib/benchmark.a)
# set(CMAKE_STANDARD_LIBRARIES ${CMAKE_STANDARD_LIBRARIES} pthread)
add_executable(foo foo.cpp)
add_executable(bar bar.cpp)
target_link_libraries(foo pthread benchmark)
target_link_libraries(bar pthread benchmark)

因为我有很多小的基准测试工具要构建所以我不想打电话 target_link_libraries(bar pthread benchmark)对于每个图书馆。

我只想定义可执行文件。并且可以自动添加 pthread 和 benchmark。

我发现 CMAKE_STANDARD_LIBRARIES 是为此目的而设计的,但我试过了
CMAKE_STANDARD_LIBRARIES 和 CMAKE_CXX_STANDARD_LIBRARIES 有多种格式,但没有一个有效。

在这种情况下我犯了什么错误?我的 cmake 版本是 3.5.1。

谢谢

最佳答案

您可以使用 link_libraries命令。其效果类似于target_link_libraries ,但适用于调用后创建的所有目标。

link_libraries(pthread benchmark)

add_executable(foo foo.cpp)
add_executable(bar bar.cpp)

关于cmake:将库添加到所有目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50292879/

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