gpt4 book ai didi

c++ - 包含 NSS 头文件的问题

转载 作者:太空宇宙 更新时间:2023-11-04 13:56:09 26 4
gpt4 key购买 nike

最近,我有了开始使用 Mozilla NSS 并学习使用它的想法,以便在未来的某个地方,我可以使用它,或者至少可以开始为它做贡献。

所以我去了它的Website并使用 mercurial 将它的源代码克隆到导演“NSS”中

然后我用

make nss_build_all

代替

gmake nss_build_all

注意:我不知道,如果有区别的话,gmake 就是 GNU Make

这个 make 命令在 nss 文件夹之外创建了一个 dist 文件夹。所以,现在我的 NSS 文件夹有 3 个文件夹 nss、nspr、dist。

在 .bashrc 中我在末尾添加了一行

export LD_LIBRARY_PATH=/home/ayusun/workspace/NSS/dist/Linux3.5_x86_glibc_PTH_DBG.OBJ/lib

然后我转到this示例代码,复制粘贴并保存在我的 NSS 文件夹中。然后我尝试编译它,但是它失败了,说它找不到iostream.h,我去改变了头文件的位置

所以

<iostream.h> became <iostream>
"pk11pub.h" became "nss/lib/pk11wrap/pk11pub.h"
"keyhi.h" became "nss/lib/cryptohi/keyhi.h"
"nss.h" became "nss/lib/nss/nss.h"

我尝试再次编译,但这次出现错误,找不到“planera.h”它实际上存在于 dist/*.OBJ/include/中,它是 nspr 中文件 planeras.h 的链接

所以我不知道如何再包含这些文件。

在包含第 3 方头文件时,我总是遇到麻烦。

谢谢

最佳答案

这是一个老问题,但我还是会回答它以备将来引用。

最简单的方法就是使用适用于您的操作系统的 NSS 包。
然后你可以使用类似 nss-config --cflags 的东西, nss-config --libs , nspr-config --cflagsnspr-config --libs并将其添加到您的 CFLAGSLDFLAGS视情况而定。

对于那些决定编译自己的 NSS 的人,我将提供快速概述。

NSS header 位于 dist/public 中.添加-I/path/to/dist/public到您的编译器命令行。 NSPR header 位于 dist/Debug/include 中¹ 所以添加 -I/path/to/dist/Debug/include到你的编译器命令行。

现在您可以使用 #include <nspr/prio.h>#include <nss/nss.h>和 friend 。

NSS 代码依赖于直接排除 NSPR header ,因此您需要添加 -I/path/to/dist/Debug/include/nspr让它找到类似 plarena.h 的东西.或者你可以做同样的事情,而不是像我上面那样为你的包含添加前缀。这取决于你。

现在添加-L/path/to/dist/Debug/lib-lnss3 -lnspr4到您的链接器命令行。您可能还想添加 -rpath /path/to/dist/Debug/lib对于运行时链接路径,或将它们复制到系统目录或使用 LD_LIBRARY_PATH .

我希望这能让你开始。

¹ 这实际上取决于您的操作系统和构建类型。我希望你能找出实际的名字 Debug目录在你的情况下。

关于c++ - 包含 NSS 头文件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21362188/

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