SDL 应用程序代码 arm linaro 找不到-lSDL

SDL 应用程序代码 arm linaro 找不到-lSDL

我正在使用 gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux 交叉编译以下 SDL 代码。usingubuntu-14.04

#include "SDL/SDL.h" 




int main( int argc, char* args[] ) {
//The images 
SDL_Surface* hello = NULL; 
SDL_Surface* screen = NULL;

//Start SDL 
SDL_Init( SDL_INIT_EVERYTHING ); 
//Set up screen
screen = SDL_SetVideoMode( 640, 480, 32, SDL_SWSURFACE ); 
//Load image
hello = SDL_LoadBMP( "Canada-Flag.bmp" );


//Apply image to screen
SDL_BlitSurface( hello, NULL, screen, NULL ); 
//Update Screen SDL_Flip( screen ); 
//Pause 
SDL_Delay( 2000 );




//Free the loaded image 
SDL_FreeSurface( hello ); 
//Quit SDL 
SDL_Quit();
return 0; 
} 

我正在使用以下命令编译代码。

arm-linux-gnueabihf-gcc -o /home/samples/display1 /home/samples/display1.c -lSDL

以下是我之后收到的错误。

/usr/lib/gcc-cross/arm-linux-gnueabihf/4.8/../../../../arm-linux-gnueabihf/bin/ld:  cannot find -lSDL collect2: error: ld returned 1 exit status

但是如果我为主机编译它,则是相同的代码。

gcc -o /home/samples/display1 /home/samples/display1.c -lSDL

它没有出现任何错误并且运行良好。

请您提出建议。

答案1

您缺少链接路径的设置,例如:-L/path/to/libswithsdl then -lSDL

例子:

arm-none-linux-gnueabi-gcc -I./thirdparty/sdl/include -L./thirdparty/sdl/lib ./src/main.c -o ./out/main

lib 文件夹必须包含.so 文件,因此您只需将其添加到搜索路径,这对于链接就可以了。

您需要确保目标上有该库,要么将其与可执行文件一起推送,要么使用 rpath 或设置 LD_LIBRARY_PATH 以包含该搜索路径

相关内容