我如何 link 使用 gcc 和 SDL_image 库?
How can I link with gcc and SDL_image library?
我有以下脚本:
gcc -I /Library/Frameworks/SDL2.framework/Headers \
-F /Library/Frameworks/ -framework SDL2 test.c
成功编译了以下源代码:
#include <SDL.h>
//#include "SDL_image.h"
int init();
int loadMedia();
void close();
SDL_Window* gWindow = NULL;
SDL_Surface* gScreenSurface = NULL;
SDL_Surface* gHelloWorld = NULL;
int init()
{
int success = 1;
if(SDL_Init(SDL_INIT_VIDEO) < 0)
{
printf("SDL could not initialize! SDL_Error: %s\n", SDL_GetError());
}
}
int main(int argc, char* args[])
{
return 0;
}
我的问题是如何使用添加的库 SDL_image 编译它?会是这样吗?
gcc -I /Library/Frameworks/SDL2.framework/Headers \
-I /Library/Frameworks/SDL_image.framework/Headers \
-F /Library/Frameworks/ -framework SDL2 test.c
尝试此操作时出现以下错误:
In file included from test.c:2:
/Library/Frameworks/SDL_image.framework/Headers/SDL_image.h:27:10: fatal error:
'SDL/SDL.h' file not found
`#include <SDL/SDL.h>`
你可以这样做:
gcc -L/libs/path -I/headers/path -lSDL2 -lSDL2_image
在这种情况下,使用 #include "..."
作为 SDL2 headers 收录。
如果您使用包管理器安装 SDL2,则之前的命令将简化为:
gcc -lSDL2 -lSDL2_image
因为编译器知道 SDL2 目录的路径。
在这种情况下,您应该使用 #include <...>
.
您应该考虑为您的项目编写 Makefile。随着项目的增长,编译会变得更容易。
我有以下脚本:
gcc -I /Library/Frameworks/SDL2.framework/Headers \
-F /Library/Frameworks/ -framework SDL2 test.c
成功编译了以下源代码:
#include <SDL.h>
//#include "SDL_image.h"
int init();
int loadMedia();
void close();
SDL_Window* gWindow = NULL;
SDL_Surface* gScreenSurface = NULL;
SDL_Surface* gHelloWorld = NULL;
int init()
{
int success = 1;
if(SDL_Init(SDL_INIT_VIDEO) < 0)
{
printf("SDL could not initialize! SDL_Error: %s\n", SDL_GetError());
}
}
int main(int argc, char* args[])
{
return 0;
}
我的问题是如何使用添加的库 SDL_image 编译它?会是这样吗?
gcc -I /Library/Frameworks/SDL2.framework/Headers \
-I /Library/Frameworks/SDL_image.framework/Headers \
-F /Library/Frameworks/ -framework SDL2 test.c
尝试此操作时出现以下错误:
In file included from test.c:2:
/Library/Frameworks/SDL_image.framework/Headers/SDL_image.h:27:10: fatal error:
'SDL/SDL.h' file not found
`#include <SDL/SDL.h>`
你可以这样做:
gcc -L/libs/path -I/headers/path -lSDL2 -lSDL2_image
在这种情况下,使用 #include "..."
作为 SDL2 headers 收录。
如果您使用包管理器安装 SDL2,则之前的命令将简化为:
gcc -lSDL2 -lSDL2_image
因为编译器知道 SDL2 目录的路径。
在这种情况下,您应该使用 #include <...>
.
您应该考虑为您的项目编写 Makefile。随着项目的增长,编译会变得更容易。