SDL_PixelFormatEnumToMasks()导致编译问题

SDL_PixelFormatEnumToMasks() causing compilation issues

本文关键字:编译 问题 PixelFormatEnumToMasks SDL      更新时间:2023-10-16

我觉得我犯了一个我找不到的简单错误,当我编译这段代码时,它把我带到一个名为'Makefile '的文件。并返回一堆关于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] + 0 x0):定义对"Rmask"的引用
main.cpp:(.rdata .refptr.Gmask美元[.refptr.Gmask] + 0 x0):定义对"Gmask"的引用
main.cpp:(.rdata .refptr.Bmask美元[.refptr.Bmask] + 0 x0):定义对'Bmask'的引用
main.cpp:(.rdata .refptr.Amask美元[.refptr.Amask] + 0 x0):定义引用"掩码"[错误]返回1退出状态配方目标"Project3.exe"失败

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

如果你只是想使用你的变量,如format,不要声明为extern