ubuntu在编译不同程序时有可能需要不同版本的开源库,为不影响一写自带库版本的使用,可将其他版本的库安装在/usr和/usr/local以外的其他路径,如在主目录下新建libs文件夹。在使用find_package前通过设置XXX_DIR或CMAKE_PREFIX_PATH来选择新安装的版本。
方式1:
set(XXX_DIR "path/to/your/lib/"
find_package(xxx)
注意,路径为直接包含xxxConfig.cmake所在的文件夹,如BoostConfig.cmake所在的路径为/home/xxx/libs/boost-1.82.0/lib/cmake/Boost-1.82.0/BoostConfig.cmake,则应设置Boost_DIR的路径为/home/xxx/libs/boost-1.82.0/lib/cmake/Boost-1.82.0
方式2:
list(APPEND CMAKE_PREFIX_PATH "path/to/your/lib")
find_package(xxx)
该方法会在CMAKE_PREFIX_PATH的每一层文件目录下查找对应的cmake文件。还是以方式1的BoostConfig.cmake为例,这里将CMAKE_PREFIX_PATH设置为"/home/xxx/libs/boost-1.82.0/"同样可以。