gpt4 book ai didi

c++ - 由于缺少头文件而出现段错误

转载 作者:太空宇宙 更新时间:2023-11-04 04:24:43 24 4
gpt4 key购买 nike

在构建共享对象时,我忘记将第 3 方“仅 header ”库 header (.h) 文件放入正确的路径中。它构建得很好 - 回顾起来令人惊讶。

运行时,在我的共享对象中使用第 3 方库时,恰好在该行发生了段错误。

我不明白的部分是,当我将这些头文件复制到 #include 指定的路径时,我无法导致段错误。我什至没有重新构建该对象。非常奇怪的是,当我 mv 头文件所在的目录时,它仍然有效 - 没有段错误。但是,当我完全 rm 目录时,它崩溃了。它是否在当前目录和子目录中查找头文件?我还在标准(?) /usr/local/include

中找到了该仅 header 库

我以前没有使用过共享对象。我通常创建静态对象并将它们包含在构建中。我用来创建相关共享对象的标志是 -shared -fPIC

我想了解这种行为。由于部署,这很有趣。在生产机器上部署时是否需要包含这些头文件?本质上,我不想将其作为依赖项,因为它是“仅 header ”库。

编辑

代码:

#include <rapidjson/document.h>
#include <rapidjson/writer.h>
#include <rapidjson/stringbuffer.h>

void MyClass::myFunction()
{
rapidjson::StringBuffer string;
rapidjson::Writer<rapidjson::StringBuffer> jsonWriter(string);
}

这里是调试 session 的链接: http://pastebin.com/a0FaQwf1

最佳答案

您永远不需要向用户提供头文件来运行程序。

你的库可能只是改进了默认值,这就是为什么它在编译时丢失时不会失败的原因

关于c++ - 由于缺少头文件而出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10121401/

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