簡體   English   中英

如何將 boost 庫添加到 Xcode 11? C++

[英]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 之類的庫實現。

我更喜歡將依賴庫保留在項目區域內。 所以這就是我如何進行測試:

  1. macOS Command-line App C++ 模板在 Xcode 中創建新的 TestBoost 項目
    (現在有 TestBoost.xcodeproj 所在的 TestBoost 文件夾)

  2. 下載最新的boost boost_1_72_0.tar.gz解壓
    (現在有boost_1_72_0文件夾與 boost)

  3. boost_1_72_0文件夾復制到項目TestBoost文件夾中,因此它位於 TestBoost.xcodeproj 旁邊

  4. 在 Xcode 項目導航器中選擇TestBoost項目 > 選擇TestBoost目標 > 選擇Build Settings選項卡

  5. Search Paths部分選擇Header Search Path ,雙擊值區域並輸入${SRCROOT}/boost_1_72_0 (保留non-recursive標志)

  6. TestBoost目標中刪除默認main.cpp (以避免主函數混淆)並從 boost 中添加一些示例進行測試,例如。 boost_1_72_0/libs/algorithm/example/search_example.cpp

  7. 構建和運行 > 成功

輸出:Xcode 11 增強集成

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM