我目前正在尝试让 CMake 为我的项目运行(在 Windows 上)。我想使用安装所有库的自定义位置。为了向 CMake 告知该路径,我尝试这样做:
set(CMAKE_PREFIX_PATH D:/develop/cmake/libs)
但是当我试图找到图书馆时
find_library(CURL_LIBRARY NAMES curl curllib libcurl_imp curllib_static)
CMake 找不到它。当我将前缀路径设置为
set(CMAKE_PREFIX_PATH D:/develop/cmake/libs/curl)
...图书馆位于。
所以我的问题是:如何正确配置 CMake 以在自定义位置使用目录结构,如下所示:
D:/develop/cmake/libs/
-> libA
-> include
-> lib
-> libB
-> include
-> lib
-> ...
-> include
-> lib
在“include”中是公共头文件,在“lib”中是编译的库。
希望有人可以帮助我 - 在此先感谢
编辑:我目前的解决方法是,在我搜索库之前执行此操作:
set(CUSTOM_LIBRARY_PATH D:/develop/cmake/libs)
file(GLOB sub-dir ${CUSTOM_LIBRARY_PATH}/*)
foreach(dir ${sub-dir})
if(IS_DIRECTORY ${dir})
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH};${dir})
endif()
endforeach()
但是那样boost的默认模块直到它才会找到它,因为boost的目录结构有点不同。
boost -> include -> boost-1_50 -> *.hpp
当我移动内容时,如果可以找到“boost-1_50”以“包含”该库,但这样就不可能处理多个版本,对吧?