繁体   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