我試圖在使用CMake的構建環境中包含外部庫。我不是試圖在本地系統上安裝它(事實上,我寧願不是這樣做,我不希望/usr/local
堵塞各種類型的庫);我只想得到結果libxml2.a
可用於鏈接我的可執行文件。我可以用的CMakeLists.txt以下罰款構建它:CMake構建和鏈接到庫,而不安裝到/ usr/local或其他地方
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)如何將我的build
輸出目錄下獲得所產生的庫(即libxml2.a
)?
3)如何鏈接到我的可執行文件的庫?
我試着用
ADD_LIBRARY(xml2 STATIC libxml2.a)
一個繁瑣的解決方案,但它好像有必須大於牽引整個庫的內容轉換成...圖書館更好的辦法。
謝謝。
謝謝。我無法完全理解我所從事的工作,現在我正嘗試一種完全不同的方法,因此我無法將其作爲「答案」進行測試。不過,爲了欣賞而投票贊成。 – wilsonmichaelpatrick