【问题标题】:SDL_PixelFormatEnumToMasks() causing compilation issuesSDL_PixelFormatEnumToMasks() 导致编译问题
【发布时间】:2015-11-07 15:09:16
【问题描述】:

我觉得我犯了一个我找不到的简单错误,当我编译此代码时,它会将我带到一个名为“Makefile.win”的文件并返回一堆关于 SDL_PixelFormatEnumToMasks() 参数的编译器错误。

代码:

#include <SDL.h>
int main( int argc, char *args[] )
{
    Uint32 format = SDL_PIXELFORMAT_RGB888;
    extern int bpp;
    extern Uint32 Rmask, Gmask, Bmask, Amask;
    SDL_PixelFormatEnumToMasks(format, &bpp, &Rmask, &Gmask, &Bmask, &Amask);
}

错误:

main.cpp:(.rdata$.refptr.bpp[.refptr.bpp]+0x0): 未定义的引用 'bpp'
main.cpp:(.rdata$.refptr.Rmask[.refptr.Rmask]+0x0): 未定义 参考“Rmask”
main.cpp:(.rdata$.refptr.Gmask[.refptr.Gmask]+0x0): 未定义 参考“Gmask”
main.cpp:(.rdata$.refptr.Bmask[.refptr.Bmask]+0x0): 未定义 参考“Bmask”
main.cpp:(.rdata$.refptr.Amask[.refptr.Amask]+0x0): 未定义 对“Amask”[错误] ld 的引用返回了 1 个退出状态配方 目标“Project3.exe”失败

【问题讨论】:

  • 不要将变量声明为extern?

标签: c++ sdl-2


【解决方案1】:

您将变量声明为extern。对于编译器,这意味着这些变量是在另一个文件的另一个范围内定义的,并尝试在您与 main.cpp 链接的任何库/文件中找到它。

如果您只想使用format 之类的变量,请不要将其声明为extern

【讨论】:

    猜你喜欢
    • 2019-10-31
    • 2011-12-03
    • 2020-08-10
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 2013-03-07
    • 2023-02-19
    • 1970-01-01
    相关资源
    最近更新 更多