在c ++链接期间,Ubuntu 12.04中找不到库

时间:2012-06-27 07:52:09

标签: linux gcc ubuntu ubuntu-12.04

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

-lpthread参数放在源文件之前时,无法构建并返回

  

ld返回1退出状态

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

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

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

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

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

我不确定这是新版Ubuntu中的错误还是仅限制规范化Makefile?

1 个答案:

答案 0 :(得分:0)

这当然很有趣。

我在Linux Mint 12上,他们似乎都在为我工作。

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

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

所以我的赌注是关于这个bug,但我没有消息来支持我。这正是逻辑解释所说的! (纠正我,如果我错了......再说!)