我目前正在尝试在 64 位 Ubuntu 12.04 机器上将一些代码编译为 32 位。如果我使用普通的 make 命令编译代码,一切正常。
现在,为了将其编译为 32 位,我将 -m32 选项添加到 C- & CXXFLAGS。工作正常,直到我收到一些关于缺少库的错误,如 -lGL
、-lGLU
、-lX11
、-lXext
, -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
下缺少一些符号链接(symbolic link)。也许您正面临类似的问题?
关于c++ - 在 64 位机器上编译 32 位 :/usr/bin/ld: cannot find -l<someLibs>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19095857/