更新2 编译器使用以下命令找到SDL.H:
g++ \
-I/usr/local/include/SDL2/ -D_GNU_SOURCE=1 -D_THREAD_SAFE \
-L/usr/local/lib -Wl,-framework,Cocoa \
sdltest.cpp
有人可以解释一下上面的代码是什么吗?!
这是我的新错误,我意识到我不会编译任何其他.cpp而不是我自己的错误,我应该这样做吗?
sdltest.cpp:10:2: error: use of undeclared identifier 'SDL_WM_SetCaption'
SDL_WM_SetCaption("SDL Test", "SDL Test");
^
sdltest.cpp:13:24: error: use of undeclared identifier 'SDL_SetVideoMode'
SDL_Surface* screen = SDL_SetVideoMode(640, 480, 0, 0);
^
sdltest.cpp:19:20: error: use of undeclared identifier 'SDL_DisplayFormat'
SDL_Surface* bg = SDL_DisplayFormat(temp);
^
sdltest.cpp:55:3: error: use of undeclared identifier 'SDL_UpdateRect'
SDL_UpdateRect(screen, 0, 0, 0, 0);
更新结束2
更新1
我现在用
编译g++ \
-Wall -Wextra -pedantic \
-std=c++11 \
-I/Library/Frameworks/SDL.framework/Versions/A/Headers/-lSDL2 -framework Cocoa \
lesson01.cpp
输出
2 warnings generated.
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
(maybe you meant: _SDL_main)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
END OF UPDATE 1
我刚刚第一次安装SDL(作为框架),我有一些问题要正确链接它!
我用
编译g++ \
-Wall -Wextra -pedantic \
-std=c++11 \
-I/Library/Frameworks/SDL.framework/Headers -lSDL2 -framework Cocoa \
lesson01.cpp
返回
ld: library not found for -lSDL2
clang: error: linker command failed with exit code 1 (use -v to see invocation)
路径似乎正确,因为
ls /Library/Frameworks/SDL.framework/Headers | grep SDL.h
返回
SDL.h
我的代码:
#include "SDL.h"
int main( int argc, char* args[] )
{
return 0
}
如果我使用
#include "SDL/SDL.h"
相反,编译器返回
lesson01.cpp:5:10: fatal error: 'SDL/SDL.h' file not found
我该怎么做才能解决这个问题?
它应该是SDL.H还是SDL / SDL.h?
我更喜欢通过终端工作,所以Xcode不是一个选项!
答案 0 :(得分:0)
这里有太多的混乱,无处可读,但这里有点......
您需要决定使用SDL 1.2还是SDL 2.0。它们是不同的库,并且位于不同的框架中。 SDL_WM_SetCaption
等编译错误来自使用SDL 1.2的代码。
还要决定是否使用SDL框架,或者是否链接到lib本身(例如-lSDL)。
包括SDL.h比SDL / SDL.h更便携。您只需确保指定标题搜索路径(使用-I)。