繁体   English   中英

在64位计算机上编译32位:/ usr / bin / ld:找不到-l <someLibs>

[英]Compiling 32bit on 64bit machine : /usr/bin/ld: cannot find -l<someLibs>

我目前正在尝试在64位Ubuntu 12.04计算机上将某些代码编译为32位。 如果我用正常的make命令编译代码,那么一切正常。

现在,为了将其编译为32位,我在C-和CXXFLAGS中添加了-m32选项。 可以正常工作,直到遇到有关-lGL-lGLU-lX11-lXext-lpng类的缺少库的错误-lpng 好的,我在/usr/lib32/nvidia-304找到了第一个库( -lGL ),该库是通过-L选项添加的。 其他库都在/usr/lib/i386-linux-gnu但是通过-L添加并不能解决任何问题。

我在这里想念什么? 提前致谢!

这是导致错误的完整gcc命令

gcc myprog.o -m32 (...) -lX11 -lXext -lpng -lm -L/usr/lib/i386-linux-gnu -lGL -L/usr/lib32/nvidia-304 -lpthread -o myprog
/usr/bin/ld: cannot find -lX11
/usr/bin/ld: cannot find -lXext
/usr/bin/ld: cannot find -lpng

另一件事:在/usr/lib32/nvidia-304我找到了libGL.so libGL.la而在/usr/lib/i386-linux-gnu我只能找到.so文件。

不确定是否有帮助,但是我前段时间遇到了类似的问题,在/usr/lib/i386-linux-gnu下缺少一些符号链接。 也许您正面临类似的问题?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM