2011-09-20 98 views
1

我想在Linux机器上安装UltraStarDeluxe。 make使用由fpc (Free Pascal)生成的编译脚本。在调用make,以下是前ld退出错误+警告消息:链接SDL_image错误

/usr/bin/ld: warning: ../game/link.res contains output sections; did you forget -T? 
/usr/bin/ld: cannot find -lSDL_image 
/home/sriram/ultraDX/ultrastardx-1.1-src/src/ultrastardx.dpr(344,1) Error: Error while linking 
/home/sriram/ultraDX/ultrastardx-1.1-src/src/ultrastardx.dpr(344,1) Fatal: There were 1 errors compiling module, stopping 
Fatal: Compilation aborted 
Error: /usr/bin/ppc386 returned an error exitcode (normal if you did not specify a source file to be compiled) 
make[1]: *** [../game/ultrastardx] Error 1 
make[1]: Leaving directory `/home/sriram/ultraDX/ultrastardx-1.1-src/src' 
make: *** [all] Error 2 

我从here知道警告信息(“你忘了-T”)是一个错误,已被删除。这是我的问题:

更新: 1.我搜索了更多的互联网,看到SDL代表简单直接媒体层。我安装了库,现在,根据question here,我/usr/local/lib包含以下内容:

default.sfx   libSDL-1.2.so.0.11.3 libSDL.la    libSDL.so   
libSDL-1.2.so.0  libSDL.a    libSDLmain.a   pkgconfig/ 

然而,错误,如上所述,仍然存在。我怎样才能摆脱它们?

更新2:
@wormsparty:我周围的错误得到了通过做rpm -U SDL_image-1.2.10-1.i586.rpm。我现在得到package SDL_image-1.2.10-1.i586 is already installed。我也检查了/usr/lib,发现安装了以下库:

libSDL-1.2.so.0 libSDL-1.2.so.0.11.2 libSDL_image-1.2.so.0 libSDL_image-1.2.so.0.8.2 libSDL.so 

这是我应该找的?

回答

2

您在找SDL_image,它提供了libSDL_image.so。这是一个独立的图书馆。

尝试并安装该库。该软件包通常命名为SDL_image

您还可以在这里抓住它:http://www.libsdl.org/projects/SDL_image/

编辑:关于包X和X-devel的之间的区别:

库的形式为lib${Name}.so.${Version}的。也可能有颠覆。版本在这里可以区分不兼容的版本,例如libpng 1.4和1.5不是二进制兼容的。

当你的程序链接到库,你可以链接到一个确切的版本号(例如gcc test.c /usr/lib/libSDL_image-1.2.so.0.8.2直接),但你通常不会真正关心的确切版本号,这就是为什么我们创建了一个动态链接:libSDL_image-1.2.so。此链接将指向确切的版本号。

通常,在发行版上,只需要运行时文件的用户既不需要头文件,也不需要那些动态链接。之前,您可能在/ usr/lib中有libSDL_image-1.2.so.${some_number},但缺少libSDL_image-1.2.so动态链接。它由SDL_image-devel包提供。

+0

感谢您的回复!我从你建议的链接下载了'SDL_image-1.2.10-1.i586.rpm',并试图通过成为'root'并输入'rpm -i SDL_image-1.2.10-1.i586.rpm'来安装它。从SDL_image-1.2.10-1.i586的安装中获得'file /usr/lib/libSDL_image-1.2.so.0与来自软件包SDL_image-1.2.6-7.fc11.i586'的文件冲突。我该如何解决这个问题? – Sriram

+0

所以这意味着你已经安装了SDL_image,但没有安装开发文件。这就像'yum install SDL_image-devel' – wormsparty

+0

我已经更新了这个问题。请参阅上面的'更新2'。 – Sriram