| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1041 人关注过本帖
标题:为什么会显示 undefine reference to 'IMG_Load'呢??
只看楼主 加入收藏
linn2o
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-11-12
结帖率:0
收藏
已结贴  问题点数:5 回复次数:2 
为什么会显示 undefine reference to 'IMG_Load'呢??
明明已经安装SDL_image扩展库啊。。


//头文件
#include "SDL/SDL.h"
#include "SDL/SDL_image.h"
#include <string>


//窗口属性
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
const int SCREEN_BPP = 32;


//表面
SDL_Surface *image = NULL;
SDL_Surface *screen = NULL;
//将要用到的事件结构体
SDL_Event event;
SDL_Surface *load_image( std::string filename )
{
//存储加载好的图像
SDL_Surface* loadedImage = NULL;


//存储优化后的图像
SDL_Surface* optimizedImage = NULL;


//加载图像
loadedImage = IMG_Load( filename.c_str() ); //就是这里出错了!!!




谢谢啦~
搜索更多相关主题的帖子: reference include screen 结构体 
2014-11-12 23:41
stop1204
Rank: 9Rank: 9Rank: 9
来 自:福建省
等 级:贵宾
威 望:22
帖 子:295
专家分:1151
注 册:2013-9-8
收藏
得分:5 
直接打开你的库文件里面去搜索一下是否存在这个函数吧.

hl928452957@gmail点com

2014-11-13 07:40
linn2o
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-11-12
收藏
得分:0 
回复 2 楼 stop1204
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册


之前我已经可以显示一张BMP图片了。
我是按照下面这个教程来安装SDL_Image扩展库的
而且库文件里好像也有这个函数呢。。我是刚学C的。。老师让我们自学SDL。谢谢


1)向下滚动到Binary部分,下载Windows开发包。


每个扩展库都有3个必备的部分:
头文件(*.h)
静态库文件(*.lib)
动态库文件(*.dll)
无论你在安装哪个扩展库,它们的安装方法都几乎一模一样。

打开zip压缩包,里面应该有一个文件夹。
打开这个文件夹,里面应该包含两个子文件夹。

2)首先,打开include子文件夹,你会看到一个头文件。将这个头文件解压出来,并把它与你在第一课中从SDL目录中解压出来的其它头文件放到同一个文件夹中。

例如,我将SDL 1.2.12解压到"C:\",那么我会将头文件“SDL_image.h” (或者是“SDL_ttf.h”、 “SDL_mixer.h”)放到“C:\SDL-1.2.12\include\SDL\”。

3)下面,将压缩包中的lib子文件夹中的lib文件解压到你的SDL的lib文件夹中。在我的例子中,那就是“C:\SDL-1.2.12\lib\”。

4)现在将压缩包中所有的dll解压出来,并将它们与你的exe放到同一个文件夹中。

和前面的一样,你可以把它们拷贝到“C:\WINDOWS\SYSTEM32”下 (对于64位Windows系统,那就是“C:\Windows\SysWOW64”),这样你的SDL应用就可以找到这些dll,哪怕它们不在同一个文件夹中。但这样会有一个问题:如果你有多个使用不同版本SDL库的应用程序,这会导致版本冲突。 如果你将一个旧版的SDL放于System32中,而应用程序使用的是新版的SDL,这必然会导致问题。通常情况下,你需要把dll文件和你开发的可执行程序放在同一个目录下,并且当你发布你的应用程序时,你总是需要将dll文件与exe放在同一个目录下。

5)现在,打开你的SDL工程并进入编译器和调试器设置。
 

6)在连接器设置 选项卡下的其他连接器选项中,在-lmingw32 -lSDLmain -lSDL的后面附加下面的命令:

-lSDL_image


 
如果你想连接SDL_ttf,那么你就加上:
-lSDL_ttf

如果你想连接SDL_mixer,那么你就加上:
-lSDL_mixer

等等。

7)要使用SDL_image,确保先包含它的头文件:
#include "SDL/SDL_image.h"

如果你在安装SDL_ttf,你就这样写:
#include "SDL/SDL_ttf.h"

如果你在安装SDL_mixer,你就这样写:
#include "SDL/SDL_mixer.h"

等等。

现在扩展库就安装好了。

现在你可以使用SDL_image的函数了。
2014-11-13 08:12
快速回复:为什么会显示 undefine reference to 'IMG_Load'呢??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017221 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved