gpt4 book ai didi

linux - CMake:库链接要求

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:19:38 27 4
gpt4 key购买 nike

我有一个项目,我在其中构建了一个名为 mylibA 的库,该库使用对 pthread 库的调用。在我的 CMake 项目文件中,我使用以下命令:

add_library( mylibA STATIC ${mylib_SRC} )
target_link_library( mylibA pthread )

在一个单独的项目中,创建一个使用 mylibA 的可执行文件。我的 CMake 项目文件如下所示:

add_executable( myexe ${myexe_SRC} )
target_link_library( myexe mylibA pthread )

如果我遗漏了可执行项​​目的 pthread 链接,我就会遇到链接问题。是否需要将 pthread 库链接到库和可执行文件,还是我做错了什么?

最佳答案

当您构建静态库时,您不会链接它,因此您指定为链接依赖项的任何内容都不会包括在内。

但是,从 CMake 2.8.12 开始,您可以指定一个接口(interface)(包括文件、编译器选项等),任何使用该库的人都应该使用该接口(interface)。

在你的情况下,你可以写:

add_library(mylibA STATIC ${mylib_SRC})
target_link_libraries(mylibA INTERFACE pthread)

关于linux - CMake:库链接要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24204870/

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