【问题标题】:Linking to different versions of a library with cmake使用 cmake 链接到不同版本的库
【发布时间】:2015-08-13 23:15:17
【问题描述】:

当使用 cmake 将代码链接到库时,我试图了解 Ubuntu 在可能安装多个版本时如何找到正确的库。

例如,就我而言,我通过运行sudo apt-get install libpng12-dev 安装了库libpng。这个库很旧,但我需要保留它以与旧项目兼容。但是,我的另一个项目需要更新版本,libpng16-dev,它仅作为源代码提供,而不是通过apt-get。于是,我下载了源码,编译安装到本地。

我现在想知道的是,当我的CMakeLists.txt 文件中有find_package(PNG) 时,它会找到哪个版本?

【问题讨论】:

    标签: ubuntu linker cmake makefile shared-libraries


    【解决方案1】:

    根据cmake documentation,如果不指定版本,则由cmake查找库。对于某些库,例如您正在使用的库,这会导致问题。对于其他人,在某些情况下可能不会。在我看来,您应该明确指定所需的版本,如下所示:

    find_package(<package> [version] ...)
    

    【讨论】:

      猜你喜欢
      • 2019-03-15
      • 2013-07-25
      • 2011-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-04
      相关资源
      最近更新 更多