使用cmake链接到库的不同版本

时间:2015-08-13 23:15:17

标签: ubuntu linker cmake makefile shared-libraries

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

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

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

1 个答案:

答案 0 :(得分:0)

根据cmake documentation,如果您没有指定版本,请将其留给cmake查找库。对于某些库,例如您正在使用的库,这将导致问题。对于其他人来说,在某些情况下可能不会。听起来像你应该明确指定你需要的版本,如:

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