【发布时间】:2010-12-29 03:47:40
【问题描述】:
我有一个 mac,我正在尝试编译我的项目。 wiki 上的标准:g++ sdl.cpp -lSDLmain -lSDL -framework Cocoa 似乎没有工作它返回它找不到 -lSDL 和 -lSDLmain。任何帮助将不胜感激。
【问题讨论】:
我有一个 mac,我正在尝试编译我的项目。 wiki 上的标准:g++ sdl.cpp -lSDLmain -lSDL -framework Cocoa 似乎没有工作它返回它找不到 -lSDL 和 -lSDLmain。任何帮助将不胜感激。
【问题讨论】:
你明白标志的含义吗?链接器正在寻找库 SDL 和 SDLmain,它们是否已在您的计算机上设置?
【讨论】:
对我来说解决方案如下:
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)标志。
【讨论】: