我目前正在尝试在64位Ubuntu 12.04计算机上编译一些代码为32位。如果我使用普通的make命令编译代码,它一切正常。
现在,为了将其编译为32位,我将-m32选项添加到C-& CXXFLAGS。工作正常,直到我发现有关遗失的图书馆的错误,例如-lGL
,-lGLU
,-lX11
,-lXext
,-lpng
。好的,我在-lGL
中找到的第一个lib(/usr/lib32/nvidia-304
)是我通过-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
个文件。
答案 0 :(得分:1)
不确定它是否有帮助,但我前段时间有一个类似的问题,/usr/lib/i386-linux-gnu
下缺少某些符号链接。也许你正面临着类似的问题?