c++ - 在 64 位机器上编译 32 位 :/usr/bin/ld: cannot find -l<someLibs>

标签 c++ c ubuntu gcc g++

我目前正在尝试在 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/

相关文章:

C 变量在初始化其他变量后变化

ubuntu - E : Sub-process/usr/bin/dpkg returned an error code (1) - elasticsearch

c++ - 为什么 boost 正则表达式用完了堆栈空间?

c++ - 从 tr1::regex_search 获取匹配索引

c - Strtol 未返回正确的 endptr - C

shell - 在 ubuntu 上连接和终止 vpn 的 shrewsoft 命令行界面

python - 使用 VLC 捕获视频,并将帧保存为 jpeg,怎么样?

c++ - 为什么这里的默认构造函数不是 constexpr?

c++ - OpenCV videoInput.h 捕获速度不同于写入速度

c - 多线程代码中的结构内存布局