如何向LDFLAGS中添加路径

17
我正在尝试设置一个名为PBC(基于配对的加密)的库。而这个库需要另一个名为GMP(GNU多精度库)的库。
我的问题是,在正确安装GMP之后,PBC会出现以下错误:
"gmp库未找到,请将其路径添加到LDFLAGS"
我不知道LDFLAGS是什么,也不知道如何将其添加到路径中。
PS:我正在使用MinGW。

你正在运行“make”编译PBC吗? 你看过Makefile了吗?它应该在顶部定义一个LDFLAGS。 - Foon
@Foon,我尝试使用make命令,但是它报错了。 - Giuseppe
3个回答

15

这个问题描述不够详细,难以给出很好的答案,但是......

在基于Unix系统上,你可能会像这样做:

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

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


23
R和L分别代表什么意思? - Daniel Möller

1
如果您查看 gcc手册
-Ldir

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

-Rdir并非所有平台都始终支持,更好的选择是结合-Wl使用rpath

-Wl,-rpath=dir

0
  1. 只是为了确保我们不能使这更容易:您是否尝试编译其他内容,以便您无法(或不想;如果您更喜欢从源代码编译所有内容等,我没有问题,但是想要确定您没有看到它)使用已经使用MinGW构建的预编译二进制文件? (在我写这篇文章时位于此处。)

  2. LDFLAGS是与C编译器一起使用的约定,用于传递应传递给加载程序部分的标志。 在您的情况下,您最有可能希望添加类似于 -L/usr/local/lib 的内容(或者放置GMP的位置...我希望您可以通过搜索 libgmp.a 找出它的位置...如有必要,在您的msys shell中,cd/ 并运行 find -name "libgmp.a")。 如果您在文本编辑器中打开 Makefile,您应该会找到一个LDFLAGS行,可能为空(在我的Linux框中,该行只是LDFLAGS=)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接