🎊 问CMake -如何使用TARGET_RUNTIME_DLLS处理导入的库目标的依赖关系EN

问CMake -如何使用TARGET_RUNTIME_DLLS处理导入的库目标的依赖关系EN

在我的项目中,我依赖一个名为foo的第三方共享库。

foo本身依赖于其他一些第三方dll (让我们称之为bar.dll),然而,我的项目既没有使用它,也没有在foo的头中公开它。

foo目标被创建并链接到我的项目,如下所示

代码语言:javascript复制add_library(foo SHARED IMPORTED)

set_target_properties(foo PROPERTIES

IMPORTED_LOCATION "${foo_dll_path}"

IMPORTED_IMPLIB "${foo_lib_path}"

)

target_link_libraries(my_project PUBLIC foo)稍后,将触发post构建事件,通过$生成器表达式创建指向所有依赖的第三方库的硬链接。

如何在此设置中引入bar.dll以在$中显示

到目前为止,我尝试将bar.dll添加为另一个通过add_library(bar UNKNOWN IMPORTED)和add_library(bar SHARED IMPORTED)导入的目标,并相应地在bar上设置IMPORTED_LOCATION,但这确实会创建链接器错误。示例:

代码语言:javascript复制add_library(bar UNKNOWN IMPORTED)

set_target_properties(bar PROPERTIES

IMPORTED_LOCATION "${bar_dll_path}"

)

target_link_libraries(foo INTERFACE bar)在UNKNOWN的情况下,链接器将使用bar.dll作为链接器输入,如果SHARED IMPORTED CMake要求设置IMPORTED_IMPLIB,当然会失败,但我既没有bar.dll的导入库,也不想将my_project链接到它。

还有其他的建议如何处理吗?

🎯 相关推荐

螃蟹要选哪种的才有黄 什么时候的螃蟹有蟹黄
office365企业邮箱设置

螃蟹要选哪种的才有黄 什么时候的螃蟹有蟹黄

📅 07-02 👀 3625
2026世界杯分配方案:亚洲8.5席 非洲最大赢家
office365企业邮箱设置

2026世界杯分配方案:亚洲8.5席 非洲最大赢家

📅 07-30 👀 3034
招商银行更改预留手机号码怎么改?
365数字含义

招商银行更改预留手机号码怎么改?

📅 07-27 👀 2909
全省河道大梳理!《广东省主要河道名录》正式公布
office365企业邮箱设置

全省河道大梳理!《广东省主要河道名录》正式公布

📅 08-18 👀 3854
西瓜视频怎么申请原创:轻松成为视频创作达人
365bet提款审核

西瓜视频怎么申请原创:轻松成为视频创作达人

📅 09-24 👀 1853
凯叔:对自己狠的人,身边都是蓝海
365数字含义

凯叔:对自己狠的人,身边都是蓝海

📅 08-14 👀 7214
电瓶车72v是什么意思;电瓶车60v和72v电机有区别吗
锥字的成语有哪些
365bet提款审核

锥字的成语有哪些

📅 09-01 👀 5845
oppo手机正在运行的程序怎么关闭
office365企业邮箱设置

oppo手机正在运行的程序怎么关闭

📅 08-15 👀 7013