【问题标题】:c++ Makefile doesn't find libraryc ++ Makefile找不到库
【发布时间】:2017-06-21 11:07:49
【问题描述】:

我想在 linux 终端中运行“make”命令以使用一些 c++ 库。 不幸的是,在运行“make”时出现一个错误,说它找不到请求的库。

这里是相关的makefile:

这是我的文件系统中应该链接的文件。

为什么makefile 找不到库? 提前感谢所有答案

【问题讨论】:

    标签: c++ makefile compilation installation


    【解决方案1】:

    尝试为 -lgmp 而不是 -libgmp 修改你的 Makefile

    编译器在后台将“lib”添加到名称以及扩展名 .so 和类似内容中。

    尝试运行以下命令以大致了解链接器正在尝试执行的操作:

    ld -L [yourincludepath] -lgmp --verbose
    

    此类分辨率问题可能是由于您尝试将 64 位库与 32 位应用程序链接的事实?试试安装一个合适的 XX 位的 lib 吧?

    尝试添加-m选项(机器依赖):

    ld -melf_i386 -L /usr/lib/i386-linux-gnu/ -lgmp --verbose
    

    您可能支持的其他值:

    elf_x86_64 elf32_x86_64 elf_i386 elf_iamcu i386linux elf_l1om elf_k1om i386pep i386pe

    更多信息:

    usr/bin/ld: cannot find -l<nameOfTheLibrary>

    【讨论】:

    • 我已经尝试过 -lgmp 和 -lntl。它不起作用。还有其他建议吗?
    • 这很有用。现在它说:尝试打开/usr/local/lib/libntl.so 失败尝试打开/usr/local/lib/libntl.a 成功它看起来好像缺少libntl.so 文件。我想我必须尝试另一个版本的库。我正在尝试使用shoup.net/ntl/download.html
    • 是的,请注意自动部署的库,有时您只是忘记了为正确的系统架构非常准确地安装库。我很高兴我对你有所帮助!
    猜你喜欢
    • 2018-08-22
    • 2015-07-28
    • 2018-03-04
    • 2013-12-29
    • 1970-01-01
    • 2013-10-15
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    相关资源
    最近更新 更多