[英]How do I add the boost library to Xcode 11? C++
我找不到在 Xcode 11.2.1 中添加 boost 的方法。 我在目標下找到了一個名為“框架和庫”的設置。 我將 boost 目錄拖到那里,它被添加到項目的“框架”部分。 但是,在構建項目時,它說“找不到文件”。 例如:
#include <boost/lambda/lambda.hpp>
導致“找不到文件”錯誤。 我沒有添加 boost,而是拖動了 Macports 的整個包含區域。 Xcode 花了一段時間來解析它,但我得到了同樣的錯誤。 所以,在框架下它有“包含”,但它找不到相關的 hpp 文件,即使我檢查過它在 boost 樹中。
我已經通過 Macports 安裝了 boost。 它位於 /opt/local/include/boost 中。
在 Xcode 文檔中,我看到了對“USER_HEADER_SEARCH_PATHS”的引用。 我想出了如何在配置文件中設置它,所以我在項目中添加了一個配置文件。 我將此添加到配置文件中: USER_HEADER_SEARCH_PATHS = /opt/local/include/boost 但這也不起作用。 (如果我取消提升,那也不起作用)。
當我在項目的框架位置選擇“包含”時,我看到該對象(Xcode 窗口的右側)有不同的設置“身份和類型”。 我選擇了“絕對路徑”,它將完整路徑顯示為 /opt/local/include,這是正確的。 然而,這也不能解決問題。
我是否需要在預定義區域中創建鏈接以便 Xcode 可以找到它?
我確實找到了一個相當丑陋的解決方法:在 STL 所在的同一區域(在 Xcode.app 目錄結構中)創建一個到 boost 庫的軟鏈接。
使用該設置僅適用於單個文件。 我可以將單個文件添加到設置中(通過拖放),但它不會遵循嵌套目錄,所以很明顯這不適用於諸如 boost 之類的庫實現。
我更喜歡將依賴庫保留在項目區域內。 所以這就是我如何進行測試:
從macOS Command-line App
C++ 模板在 Xcode 中創建新的 TestBoost 項目
(現在有 TestBoost.xcodeproj 所在的 TestBoost 文件夾)
下載最新的boost
boost_1_72_0.tar.gz並解壓
(現在有boost_1_72_0
文件夾與 boost)
將boost_1_72_0
文件夾復制到項目TestBoost
文件夾中,因此它位於 TestBoost.xcodeproj 旁邊
在 Xcode 項目導航器中選擇TestBoost
項目 > 選擇TestBoost
目標 > 選擇Build Settings
選項卡
在Search Paths
部分選擇Header Search Path
,雙擊值區域並輸入${SRCROOT}/boost_1_72_0
(保留non-recursive
標志)
從TestBoost
目標中刪除默認main.cpp
(以避免主函數混淆)並從 boost 中添加一些示例進行測試,例如。 boost_1_72_0/libs/algorithm/example/search_example.cpp
構建和運行 > 成功
輸出:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.