我正在尝试在使用CMake的构建环境中包含一个外部库。我不想在本地系统上安装它(事实上,我更不想这样做,我不想让/usr/local
被各种各样的库所占据);我只想将生成的libxml2.a
用于与我的可执行文件链接。我可以通过在CMakeLists.txt中添加以下内容来成功构建它:
set (LIBXML_PATH ${MY_SOURCE_DIR}/libxml2-2.9.1)
add_custom_target (build_libxml ALL
COMMENT "Building libxml"
COMMAND ./configure --prefix=/tmp
COMMAND make
WORKING_DIRECTORY ${LIBXML_PATH}
)
但我仍然遇到以下问题:
1)对于将使用configure
和make
构建的库放入CMake环境中的一般目的,这是否是正确的方法?
2)如何将生成的库(即libxml2.a
)放置在我的build
输出目录下?
3)如何为我的可执行文件构建链接到该库?
我尝试了一种繁琐的解决方案,使用了
ADD_LIBRARY( xml2 STATIC libxml2.a )
但是看起来应该有比将整个图书馆的内容都搬到另一个图书馆中更好的方法。
谢谢。