web-dev-qa-db-ja.com

MACの/ Library / FrameworkフォルダーからC ++のファイルをどのように含めますか

SDLを使おうとしています。 /Library/FrameworksSDL2.frameworkというフォルダがあります。プロジェクトにファイルSDL.hを含めたい。どうすればよいですか?私のコードは次のようになります:

// Example program:
// Using SDL2 to create an application window

#include <SDL.h>
#include <stdio.h>

int main(int argc, char* argv[]) {
    SDL_Window *window;                    // Declare a pointer
    SDL_Init(SDL_INIT_VIDEO);              // Initialize SDL2
    // Create an application window with the following settings:
    window = SDL_CreateWindow(
        "An SDL2 window",                  // window title
        SDL_WINDOWPOS_UNDEFINED,           // initial x position
        SDL_WINDOWPOS_UNDEFINED,           // initial y position
        640,                               // width, in pixels
        480,                               // height, in pixels
        SDL_WINDOW_OPENGL                  // flags - see below
    );
    // Check that the window was successfully made
    if (window == NULL) {
        // In the event that the window could not be made...
        printf("Could not create window: %s\n", SDL_GetError());
        return 1;
    }
    // The window is open: enter program loop (see SDL_PollEvent)
    SDL_Delay(3000);  // Pause execution for 3000 milliseconds, for example
    // Close and destroy the window
    SDL_DestroyWindow(window);
    // Clean up
    SDL_Quit();
    return 0;
}

私が得るエラーは次のとおりです。

Aarons-MacBook-Air:SDL aaron$ g++ main.cpp
main.cpp:4:10: fatal error: 'SDL.h' file not found
#include <SDL.h>
          ^ 1 error generated.

SDLファイルを適切に含めるにはどうすればよいですか? SDL2.frameworkheadersSDL.h ..の中にあります。

13
ILikeTurtles

明らかにこのためのビルドスクリプトを作成する必要がありますが、重要な部分は次のとおりです。

-I/usr/local/includeまたはヘッダーがインストールされる場所。

私は自家醸造を使用しました:

brew install sdl2

ライブラリを/usr/local/Cellar/に配置します

したがって、libパスを指定する必要がある場合は、以下も追加します。

-L/usr/local/lib -lSDL2

また、インクルード行を#include <SDL2/SDL.h>に変更しました

16
Grady Player

ヘッダーファイルはHeadersフォルダーの下にあるため、これを適切に含めるには、次のようにします。

clang++ -std=c++11 -stdlib=libc++ -I/Library/Frameworks/SDL2.framework/Headers/

しかし、私は自作でインストールすることをお勧めします:

brew install sdl2

Homebrewは/ usr/local/libおよび/ usr/local/includeの下にSDL2libSDL2.aファイルをインストールするため、ライブラリの-Lと-Iフラグを使用してこのライブラリパスを含めるだけで、/ usr /に検索を追加できます。ローカル/インクルードディレクトリ:

clang++ -std=c++11 -stdlib=libc++ main.cpp -I/usr/local/include -L/usr/local/lib -lSDL2 -o programfile

そして含める:

#include <SDL2/SDL.h>
3
Renato Prado