簡體   English   中英

C++、CMake 和 Xcode 符號導航器

[英]C++, CMake, and Xcode Symbol Navigator

我正在創建使用 CMake 生成 XCode 項目的 C++ 項目。 它使用帶有代碼行的 Boost FileSystem

  SET(BOOST_ROOT ~/libs/boost/boost_1_64_0)
  set(Boost_USE_STATIC_LIBS   ON)
  FIND_PACKAGE(Boost 1.64 EXACT REQUIRED COMPONENTS filesystem)
  include_directories(${Boost_INCLUDE_DIRS})

但現在符號導航器被數千個 Boost 類污染了

符號導航器

有什么辦法可以排除這些嗎? 由於我的項目是在 cmake 中生成的,我不清楚我有什么權力。 我猜測並說我的包含最初是#include "boost/filesystem.hpp"並將其更改為#include <boost/filesystem.hpp>但這似乎沒有什么區別。 接下來,我認為 cmake include directory 命令上可能有一個標志,所以嘗試了include_directories(SYSTEM ${Boost_INCLUDE_DIRS})但這沒有用。

有沒有辦法指示 xcode 不應在導航器中包含這些目錄?

使用底部的過濾器:

  • 僅顯示類和協議:單擊底部過濾器欄中的類和協議按鈕 ()。
  • 僅顯示項目符號:點按底部過濾器欄中的“項目符號”按鈕 ()。

https://help.apple.com/xcode/mac/current/#/dev2241bf769


不要設置include_directories ,而是嘗試為目標設置HEADER_SEARCH_PATHS

您可能需要編輯Boost_INCLUDE_DIRS以使其成為帶引號的文件路徑的空格分隔字符串。

set_target_properties(${target_name} PROPERTIES XCODE_ATTRIBUTE_USER_HEADER_SEARCH_PATHS "${Boost_INCLUDE_DIRS}")

https://help.apple.com/xcode/mac/current/#/itcaec37c2a6

暫無
暫無

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

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