gpt4 book ai didi

c++ - iOS预编译头文件包含时出错

转载 作者:行者123 更新时间:2023-11-30 04:35:06 25 4
gpt4 key购买 nike

我正在开发一个 iOS 应用程序并使用来自 Boost 库的共享指针。我的应用程序有点笨拙,所以我一直在尝试将其精简。我想移动这条线:

#include <boost/shared_ptr.hpp>

从单个文件到预编译的头文件将为我节省一些空间,因为我听说每次包含 shared_ptr 都会重新编译一个不同的版本并且不清楚编译器是否正在删除重复项。

当我将这一行移动到 pch 文件时,我遇到了大量的编译时错误,其中大部分是:

error: expected '=', ',', ';', 'asm' or '__attribute__' before 'boost'

我已经在其信息中将 .pch 文件更改为 sourcecode.cpp.h 文件,但这没有帮助。

想法?

编辑:刚刚验证了我的二进制文件中实际上存在已编译的 shared_ptr 的重复拷贝!

最佳答案

您的项目中可能有 C 或 ObjC 源代码。

在那种情况下:

#if defined(__cplusplus)
#include <boost/shared_ptr.hpp>
#endif

Xcode(默认情况下)为项目中的每种语言/方言创建一个前缀,如果没有,它仍然是手动#included。不幸的是,将 header 移动到 pch 只能添加重复项。但是,它可以减少您的构建时间。

关于c++ - iOS预编译头文件包含<boost/shared_ptr.hpp>时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5626192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com