此问题已在此处有答案:
/usr/bin/ld: cannot find -lXinerama when compiling window manager(1个答案)
5天前关闭。
我运行的是Ubuntu 20.04.6,通过rustup安装脚本(rustup1.26.0)安装了cargo 1.70.0
运行cargo run
与pix-engine示例程序粘贴到main.rs给我这个错误
error: linking with `cc` failed: exit status: 1
|
= note: LC_ALL="C" PATH= // trim (massive list of environment variables)
= note: /usr/bin/ld: cannot find -lSDL2
/usr/bin/ld: cannot find -lSDL2_mixer
/usr/bin/ld: cannot find -lSDL2_image
/usr/bin/ld: cannot find -lSDL2_ttf
/usr/bin/ld: cannot find -lSDL2_gfx
collect2: error: ld returned 1 exit status
我尝试重新安装build-essential,我尝试重新安装rustup(确保它实际上删除了cargo二进制文件)
我还尝试了sdl 2库(使用示例程序),得到了同样的错误,但
// trim
= note: /usr/bin/ld: cannot find -lSDL2
collect2: error: ld returned 1 exit status
所以sdl 2也抛出链接器错误,只是更少。
1条答案
按热度按时间9nvpjoqh1#
我在apt中搜索sdl 2包,直到我发现了这个:
当我(通过apt)安装
libsdl2-dev
时,当我重新编译时,错误的/usr/bin/ld: cannot find -lSDL2
部分消失了,所以我继续安装libsdl2-mixer-dev
,libsdl2-image-dev
,libsdl2-ttf-dev
和libsdl2-gfx-dev
在那之后,它编译和工作完美!
所以看起来
/usr/bin/ld: cannot find -lSDL2
链接器错误已通过安装libsdl2-dev
修复,libsdl2-mixer-dev
的-lSDL2_mixer
链接器错误,等等的。
这也解决了我在sdl 2机箱上遇到的同样的问题。
P.S.我用的是sdl 2 0.35.2和pix-engine 0.7.0,目前最新的版本