V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
GeekHub
stebest
V2EX  ›  C++

关于 CMAKE 的链接库

  •  
  •   stebest · 11 天前 · 515 次点击

    想问一下,如果 cmake 生成了一个库文件,比如动态库(so),设为 A.so, 然后生成的过程中依赖了其他的库,就算 B.so, 即最后使用 target link 连接上去,那么生成的库 A.so 被别的程序使用的时候也还是要再次连接 B.so 吗?

    目前遇到的问题就是这样,是不是 cmake 写的有问题,编译打包好了的库,在给别的程序使用的时候,如果不提供原来的头文件和库,就会提示 undefined request 的错误

    5 条回复    2020-09-16 17:06:51 +08:00
    wutiantong
        1
    wutiantong   11 天前
    建议了解一下动态链接库和静态链接库的区别。
    Huelse
        2
    Huelse   11 天前
    不知道你在说什么,动态库只有程序运行时被调用,静态库在编译时被包含。
    stebest
        3
    stebest   11 天前
    @Huelse 就是以前的代码生成的库,如果是动态的,然后你编译的时候需要调用,同时包含其头文件。然后生成的库被别人调用的时候也还是要包含你之前包含的头文件和链接库么?
    stebest
        4
    stebest   11 天前
    @Huelse 大概明白了,谢谢
    EggtartZ
        5
    EggtartZ   11 天前
    target_link_libraries 可以设置成 PRIVATE
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2981 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 10:58 · PVG 18:58 · LAX 03:58 · JFK 06:58
    ♥ Do have faith in what you're doing.