gpt4 book ai didi

c++ - 通过命令行设置SDL2 mac

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:47:26 25 4
gpt4 key购买 nike

我正在尝试将 SDL2 设置为与 g++、文本编辑器和终端一起使用。我在/Library/Frameworks 中有我的 SDL2.framework。我的桌面上有一个名为 testsdl 的文件夹,其中包含两个文件:

1) main.cpp

2) 生成文件

当我键入 make 时,出现以下错误:main.cpp:2:10: fatal error: 'SDL2/SDL.h' file not found。这是我的 makefile 的拷贝

CXX = g++
SDL = -framework SDL2

CXXFLAGS = -Wall -c -std=c++11 -I ~/Library/Frameworks/SDL2.framework/Headers
LDFLAGS = $(SDL) -F /Library/Frameworks -F ~/Library/Frameworks/
EXE = SDL_Lesson0

all: $(EXE)

$(EXE): main.o
$(CXX) $(LDFLAGS) $< -o $@

main.o: main.cpp
$(CXX) $(CXXFLAGS) $< -o $@

clean:
rm *.o && rm $(EXE)

这是 main.cpp 的拷贝:

#include <iostream>
#include <SDL2/SDL.h>

int main(int, char**)
{
if (SDL_Init(SDL_INIT_VIDEO) != 0)
{
std::cout << "SDL_Init Error: " << SDL_GetError() << std::endl;
return 1;
}
SDL_Quit();
return 0;
}

我尝试将#include 更改为“SDL2/SDL.h”或仅更改或任何其他可能的组合。我通过 Xcode 进行设置没有问题,但不知道如何在不使用 IDE 的情况下进行设置。

问题的第二部分是:如果我想将框架包含在项目文件夹中,以便以后可以将二进制文件分发给机器上没有 SDL 的人,我该怎么做?谢谢。

最佳答案

您走在正确的轨道上,但是 -F/Library/Frameworks 也需要在 CXXFLAGS 中。结果命令应该类似于:

g++ -Wall -F /Library/Frameworks -c -o main.o main.cpp
g++ main.o -o main -framework SDL2 -I /Library/Frameworks/SDL2.framework/Headers

这是一个简化的 makefile,适用于 OSX 10.12.6:

CXX = g++

CXXFLAGS = -Wall -F /Library/Frameworks
LDFLAGS = -framework SDL2 -F /Library/Frameworks -I /Library/Frameworks/SDL2.framework/Headers

all: main

main: main.o
$(CXX) main.o -o main $(LDFLAGS)

obj/main.o : main.cpp
$(CXX) $(CXXFLAGS) -c main.cpp -o main.o

clean:
rm main.o main

关于c++ - 通过命令行设置SDL2 mac,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33772430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com