Я использую 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
следующее является ошибкой whai, я получаю его после этого.
/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
это не дает ошибок и работ хорошо.
Можете Вы предлагать.
Вы пропускаете установку пути ссылок, как: -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 файлы, таким образом, Вы просто добавляете к пути поиска, это будет хорошо для соединения.
Необходимо удостовериться, что имели lib на цели, или продвинули его с исполняемым файлом, использовали rpath или установили LD_LIBRARY_PATH для включения того пути поиска