我有一台mac,我正在尝试编译我的项目。维基上的标准:g ++ sdl.cpp -lSDLmain -lSDL -framework Cocoa似乎没有工作,它返回它无法找到-lSDL和-lSDLmain。任何帮助将不胜感激。
答案 0 :(得分:0)
你明白旗帜的含义吗?链接器正在寻找库SDL和SDLmain,它们是否在您的机器上设置?
答案 1 :(得分:0)
对我来说,解决方案如下:
g++ -c -I/Library/Frameworks/SDL.framework/Headers -I. -I.. -I/Library/Frameworks/SDL_image.framework/Headers -I/Library/Frameworks/SDL_mixer.framework/Headers -I/Library/Frameworks/SDL_ttf.framework/Headers -I/Library/Frameworks/SDL_net.framework/Headers -I/usr/local/include/SDL -I/usr/local/include/ ./lesson20.cpp -o ./lesson20.o
现在已经创建了目标文件,我们可以使用这个解决方案:
g++ -L/usr/local/lib -I/Library/Frameworks/SDL.framework/Headers -I. -I.. -I/Library/Frameworks/SDL_image.framework/Headers -lSDLmain -I/Library/Frameworks/SDL_mixer.framework/Headers -I/Library/Frameworks/SDL_ttf.framework/Headers -I/Library/Frameworks/SDL_net.framework/Headers -framework SDL -framework SDL_image -framework Cocoa -framework SDL_mixer -framework SDL_ttf -framework SDL_net -framework OpenGL lesson20.o -o Lesson
此解决方案假定您在'/ Library / Frameworks /'目录中安装了SDL_image,SDL_mixer,SDL_ttf和SDL_net框架。
由于这很难手工完成,并且解决方案有点混乱,所以最好简单地编写一个脚本来为你完成所有这些。
'-I'(大写i)标志告诉编译器在哪里查找标题。 '-L'标志告诉编译器在哪里查找库。 '-l'(小写L)标志告诉编译器使用哪些库。 '-framework'标志基本上表现得像'-l'(小写L)标志。