【问题标题】:During c++ linking, library not found in Ubuntu 12.04在 c++ 链接期间,在 Ubuntu 12.04 中找不到库
【发布时间】:2012-06-28 14:48:55
【问题描述】:

当我构建一个链接pthread的简单程序时,我遇到了一个奇怪的问题:

-lpthread参数放在源文件前时,构建失败并返回

ld 返回 1 个退出状态

但是,当我最后编写-lpthread参数时,它构建程序成功。

我是新手,很抱歉我无法上传图片。以下是两个版本命令:

失败gcc **-lpthread** maintest.cpp

成功gcc maintest.cpp **-lpthead**

我之前在 Ubuntu 11.04 中遇到过同样的问题,但在 Ubuntu 10.10 中我无法重现该问题。

我不确定这是新版 Ubuntu 中的一个错误,还是只是对 Makefile 进行规范化的限制?

【问题讨论】:

  • 您可以将图片上传到任何共享服务,获取直接链接并通过图片标签将其嵌入此处

标签: linux gcc ubuntu ubuntu-12.04


【解决方案1】:

这当然很有趣。

我使用的是 Linux Mint 12,它们似乎都在为我工作。

您是否使用 .c 文件而不是 cpp 进行了尝试?你能做到这一点并发布你的结果吗? (我很确定这没有什么区别,但只是想检查一下!)

我不是 100% 肯定,但我非常肯定它不能成为规范化 makefile 的约束,因为在 linux 中,您不需要具有正确的扩展名来使用正确的编译器编译文件。 (这就是为什么我很确定上述说法的原因)。正在使用的编译器。所以从逻辑上讲,限制它没有任何意义,因为 pthread 只会由编译器加载(库将被链接),然后它可以跳转到编译源代码。如果我没有错(纠正我的人,如果我错了!),那么基本上它不会有什么不同,因为位于命令中任何位置的标志会在编译源文件之前加载/链接库。

所以我的赌注是这个错误,但我没有来源支持我。这正是逻辑解释所说的! (如果我错了,请纠正我......再次!)

【讨论】:

    猜你喜欢
    • 2014-08-20
    • 2013-11-24
    • 2014-06-09
    • 1970-01-01
    • 2017-01-12
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    相关资源
    最近更新 更多