如何添加 LDFLAGS 路径

发布于 2024-11-13 08:49:22 字数 357 浏览 3 评论 0原文

我正在尝试建立一个名为 PBC (基于配对的密码学)的库。这个库需要另一个名为 GMP 的库 -(GNU 多精度库)。

我的问题是正确安装 GMP 后,PBC 给出错误:

找不到 gmp 库将其路径添加到 LDFLAGS

我不知道 LDFLAGS 是什么以及如何将其添加到路径中。

PS:我使用的是MinGW。

I'm trying to set up a library called PBC (Pairing-based cryptography). And this library requires another library called GMP -(GNU Multiple-Precision Library).

My problem is after installing GMP correctly, PBC gives an error of:

gmp library not found add its path to LDFLAGS

I have no idea what LDFLAGS is and how to add it to the path.

PS: I'm using MinGW.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

紫南 2024-11-20 08:49:22

这个问题的描述性不够好,任何人都无法很好地回答,但是……

在基于 Unix 的系统上,您可能会做这样的事情:

$ export LDFLAGS="-R/the/path/to/the/gmp/lib -L/the/path/to/the/gmp/lib"
$ ./configure
$ make
$ make install

使用 GNU make 工具的 Windows 环境,需要进行一些细微的调整。

The question is not really descriptive enough for anyone to answer well, but....

On a Unix-based system you would likely do something like this:

$ export LDFLAGS="-R/the/path/to/the/gmp/lib -L/the/path/to/the/gmp/lib"
$ ./configure
$ make
$ make install

Windows environments with GNU make tools, will need minor tweaks.

谎言 2024-11-20 08:49:22

如果您查看gcc man

-Ldir

添加目录 dir 到要搜索的目录列表
对于-l。因此,-Ldir只是将路径传递给链接器来查找源代码使用的.a.so

-Rdir 并不总是受所有平台支持
更好的选择是 rpath-Wl :

-Wl,-rpath=dir

If you look into gcc man:

-Ldir

adds directory dir to the list of directories to be searched
for -l. So, -Ldir just passes a path to the linker to look for a .a or .so library used by the source code

-Rdir is not always supported by all platform,
a better option is rpath together with -Wl:

-Wl,-rpath=dir
若能看破又如何 2024-11-20 08:49:22
  1. 只是为了确保我们不能让这变得更容易:您是否试图编译一些额外的东西,以至于您不能(或不想);如果您喜欢从源代码编译所有内容或什么,我没有问题不是,但想确保您只是没有看到它)使用某人已经使用 MinGW 构建的预编译二进制文件? (位于此处,当我写这篇文章时.)

  2. LDFLAGS 是 C 编译器对于应传递给加载器部分的标志的约定。在你的情况下,你很可能想要添加类似 -L/usr/local/lib 的东西(或者无论 GMP 放在哪里......我希望你可以通过以下方式弄清楚)搜索 libgmp.a ...如有必要,在您的 msys shell 中,cd/ 并运行 find -name "libgmp .a")。如果您在文本编辑器中打开 Makefile,您应该会找到一个 LDFLAGS 行,可能是空的(在我的 Linux 机器上,它只是 LDFLAGS=对于该行)。

  1. Just to make sure we can't make this easier: are you trying to compile something extra such that you can't (or don't want to; I have no problems if you prefer to compile everything from source or what not but want to make sure you just didn't see it) use the precompiled binaries someone already built using MinGW? (Located here as of when I wrote this.)

  2. LDFLAGS are a convention with a C compiler for flags that should be passed to the loader part. In your case, you're most likely going to want to add something like -L/usr/local/lib (or wheverer GMP got put... I would expect you can probably figure it out by searching for libgmp.a ... if necessary, in your msys shell, cd to / and run find -name "libgmp.a"). If you open the Makefile in a text editor, you should find a LDFLAGS line, possibly empty (on my Linux box, it's just LDFLAGS= for that line).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文