2016-06-28 138 views
0

我下载SDL来源'https://www.libsdl.org'如何使用SDL和gcc?

我使用cmake并获取库。

libSDL2.a 
libSDL2main.a 
libSDL2-2.0.so 
libSDL2-2.0.so.0 
libSDL2-2.0.so.0.4.0 

我写main.c来测试SDL。

#include <SDL.h> 

int main() 
{ 
    SDL_Init(SDL_INIT_VIDEO); 
    SDL_Quit(); 
    return 0; 
} 

我建立lib目录。 我移动* .a文件和包含目录。

vim main.c 
mkdir lib 
mv libSDL2.a libSDL2main.a ./lib 
mv /home/gakgu/다운로드/SDL2-2.0.4/include ./ 

然后尝试编译。

gcc -W -Wall -o main main.c -Iinclude -Llib -lSDL2 -lSDL2main 

but It is failed.

什么问题?

+0

如果用静态库链接你应该拉它所有的依赖关系(在给定的情况下,是'-lpthread',但可能会有更多)。共享库具有嵌入的依赖信息,因此不需要。 – keltar

回答

1

您必须在其他库之前添加 - lpthread以链接线程支持。

你也应该让多一点警告选项: - Wextra - pedantic

所以

gcc -W -Wall -Wextra -pedantic -o main main.c -Iinclude -lpthread -Llib -lSDL2 -lSDL2main