c++ - "Winapifamily.h: कोड में एसडीएल का संकलन करते समय ऐसी कोई फ़ाइल या निर्देशिका नहीं":: ब्लॉक




sdl codeblocks (2)

मैं कोड :: ब्लॉक 13.12 का उपयोग करके LazyFoo द्वारा SDL2.0 ट्यूटोरियल के साथ अनुसरण कर रहा हूं। मुझे SDL2 को जोड़ने और VS2010 में चलने में कोई परेशानी नहीं हुई है, लेकिन आईडीई को बदल दिया है और इस त्रुटि के पार आ गए हैं:

winapifamily.h: ऐसी कोई फ़ाइल या निर्देशिका नहीं

मुझे लगता है कि सब कुछ सही तरीके से जुड़ा हुआ है। मैंने अपने एसडीएल 2 में प्रोग्राम को शामिल किया है और इसमें लिबर डायरेक्टरी शामिल हैं।

बिल्डलॉग: (फ़ाइल में त्रुटि आ रही है: .. \ \ SDL2 \ SDL_platform.h शामिल करें)

=== बिल्ड: SDL2_Setup में डिबग (संकलक: GNU GCC कंपाइलर) ===

घातक त्रुटि: winapifamily.h: ऐसी कोई फ़ाइल या निर्देशिका नहीं

=== बिल्ड विफल रहता है: 1 त्रुटि (s), 0 चेतावनी (s) (0 मिनट (s), 0 सेकंड (s)) ===

यह मेरा पहली बार यहाँ पर एक प्रश्न पूछ रहा है। मैंने एक उत्तर के लिए Google किया और यहां मौजूद मौजूदा प्रश्नों / उत्तरों को खोजा लेकिन समस्या को हल करने में असमर्थ था। यहाँ मेरा कोड भी है।

मेरा कोड:

// Using SDL and standard IO
#include <SDL.h>
#include <stdio.h>

// Screen dimension constants
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;

int main( int argc, char* args[] )
{
    // The window we'll be rendering to
    SDL_Window* window = NULL;

    // The surface contained by the window
    SDL_Surface* screenSurface = NULL;

    // Initialize SDL
    if( SDL_Init( SDL_INIT_VIDEO) < 0 )
    {
        printf( "SDL could not initialize! SDL_GetError: %s\n", SDL_GetError() );
    }
    else
    {
        // Create window
        window = SDL_CreateWindow( "SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN );
        if( window == NULL )
        {
            printf( "Window could not be created! SDL_GetError: %s\n", SDL_GetError() );
        }
        else
        {
            // Get window surface
            screenSurface = SDL_GetWindowSurface( window );

            // Fill the surface white
            SDL_FillRect( screenSurface, NULL, SDL_MapRGB( screenSurface->format, 0xFF, 0xFF, 0xFF));

            // Update the surface
            SDL_UpdateWindowSurface( window );

            // Wait two seconds
            SDL_Delay( 2000 );
        }
    }

    // Destroy window
    SDL_DestroyWindow( window );

    // Quit SDL subsystems
    SDL_Quit();

    return 0;
}

जल्दी ठीक। SDL_platform.h में पंक्तियों को 121 से 132 तक सम्मिलित करें। त्रुटि होने पर फ़ाइल C :: B में लोड हो जाती है। इसे बचाने और दूर का निर्माण!


मुझे वह समस्या थी। के लिए जाओ

C:\Program Files (x86)\Windows Kits\8.0\Include\shared

और winapifamily.h , फिर इसे अपने कॉपी करें

..\Mingw\Include\ folder

संपादित करें: मुझे लगता है कि मेरे पास विज़ुअल स्टूडियो 2012 या बाद में, खेद के कारण विंडोज़ किट फाइलें हैं। मुझे खुशी है कि आप अपनी समस्या को हल कर पाए।

हां, समस्या उस हेडर में है (SDL_plataform.h संस्करण SDL 2.0.3 में लाइनें 117 से 134):

#if defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__)
/* Try to find out if we're compiling for WinRT or non-WinRT */
/* If _USING_V110_SDK71_ is defined it means we are using the v110_xp or v120_xp toolset. */
#if defined(__MINGW32__) || (defined(_MSC_VER) && (_MSC_VER >= 1700) && !_USING_V110_SDK71_)    /* _MSC_VER==1700 for MSVC 2012 */
#include <winapifamily.h>
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#undef __WINDOWS__
#define __WINDOWS__   1
/* See if we're compiling for WinRT: */
#elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
#undef __WINRT__
#define __WINRT__ 1
#endif
#else
#undef __WINDOWS__
#define __WINDOWS__   1
#endif /* _MSC_VER < 1700 */
#endif /* defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) */




sdl-2