【发布时间】:2020-08-27 02:36:20
【问题描述】:
我正在创建使用 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})
但现在 Symbol Navigator 被数千个 Boost 类所污染
有没有办法排除这些?由于我的项目是在 cmake 中生成的,目前还不清楚我有什么权力。我猜测并说我的包含最初是 #include "boost/filesystem.hpp" 并将其更改为 #include <boost/filesystem.hpp> 但这似乎没有什么不同。接下来,我认为 cmake 包含目录命令上可能有一个标志,所以尝试了include_directories(SYSTEM ${Boost_INCLUDE_DIRS}),但没有奏效。
有没有办法表明 xcode 不应该在导航器中包含这些目录?
【问题讨论】:
-
(现在我可以在这里发表评论 \o/)boost 库是否是项目的一部分:你能在文件导航器中、框架或其他东西下看到它们吗?您如何链接库:通过在 cmake 中设置链接标志或在 Xcode gui 中添加它?另外,您是否尝试使用新设置创建一个新的 Xcode 项目?
-
看起来问题可以使用 SYSTEM 指示符解决。在包含目录 (cmake.org/cmake/help/latest/command/include_directories.html) 上,同时旧类真的 喜欢闲逛,因此关闭 Xcode 并手动删除派生数据有助于清除错误值。
-
另外,如果包含目录与项目路径混在一起,那么它会假定它不是系统的,但是如果您在当前源树/项目之外添加一个目录,那么它可能会自动将其识别为使用原始方法和@puio 方法的系统目录。