排除#include错误

时间:2010-12-31 00:16:56

标签: include scope sdl

在我的程序的顶部,我有

#include "SDL/SDL_image.h"

当我尝试使用SDL_image的一个函数进行编译时,它会说

load_image()

未在此范围内声明。我可以做些什么来确保一切设置正确?

我已将其包含在我的链接器设置中。

1 个答案:

答案 0 :(得分:0)

错误消息来自编译器,而不是链接器。因此,您的链接器设置没有任何区别。

如果你绝对无能为力,你可以要求编译器(预处理器)生成它试图编译的预处理代码。 (相关的gcc选项是-save-temps)这样你可以看到是否真的声明了load_image。也许条件编译选项是排除声明,或者找不到某些包含文件而您错过了错误消息。 此外,如果您正在编译C ++代码(我假设您是这样),那么SDL内容应该包含在extern C块中(尽管我认为这会导致链接器错误)。但是,这些可能已包含在SDL标头中。

如果所有其他方法都失败了,请将预处理的输出上传到某处,以便我们查看。

编辑:根据SDL Image v1.2 documentation,图像加载器功能实际上被称为IMG_Load,我没有看到load_image