【发布时间】:2021-12-25 00:31:42
【问题描述】:
我有以下 cmake 文件
cmake_minimum_required(VERSION 3.16)
find_package(fmt)
add_library(mylib INTERFACE )
add_dependencies(mylib fmt::fmt-header-only)
target_compile_features(mylib INTERFACE cxx_std_20)
target_include_directories(mylib INTERFACE .)
add_executable(test_exe test_exe.cpp)
target_link_libraries(test_exe PUBLIC mylib)
但是fmt 没有链接到test_exe,除非我明确地将它添加到依赖项中。我定义mylib的依赖是不是错了?
错误如下,如果我将fmt::header-only添加到test_exe的链接库,它就会消失
fatal error: 'fmt/format.h' file not found
#include <fmt/format.h>
^~~~~~~~~~~~~~
【问题讨论】:
-
如果您想在与
mylib链接时传递与fmt::fmt-header-only的链接,则使用target_link_libraries而不是add_dependencies:target_link_libraries(mylib INTERFACE fmt::fmt-header-only)。 -
谢谢!那效果很好。你能把它作为一个答案让我接受吗?