So I'm trying to create a simple 2D game engine with SDL2 and Codelite. I have already written this code and compiled it with gcc, using g++ src/*.cpp -o game -I include -L lib -lSDL2 -lSDL2_image
and it didn't work. I have a lib
folder containing all the libs for SDL2
and SDL_image
, and an include
folder with all the header files of the SDL. I also tried to compile this in Codelite so I recreated the same file structure and I linked SDL. It worked perfectly until I tried to use SDL_image
. In the Project settings -> Linker
and Project settings -> Compiler
tabs, I have put the same paths from where I got the include files and the lib files that I used in my previous project, but it doesn't compile. I get this error:
Undefined symbols for architecture arm64:
"_TIFFClientOpen", referenced from:
_IMG_LoadTIF_RW in libSDL2_image.a(IMG_tif.o)
"_TIFFClose", referenced from:
_IMG_LoadTIF_RW in libSDL2_image.a(IMG_tif.o)
"_TIFFGetField", referenced from:
_IMG_LoadTIF_RW in libSDL2_image.a(IMG_tif.o)
"_TIFFReadRGBAImageOriented", referenced from:
_IMG_LoadTIF_RW in libSDL2_image.a(IMG_tif.o)
"_WebPDecodeRGBAInto", referenced from:
_IMG_LoadWEBP_RW in libSDL2_image.a(IMG_webp.o)
"_WebPDecodeRGBInto", referenced from:
_IMG_LoadWEBP_RW in libSDL2_image.a(IMG_webp.o)
"_WebPGetFeaturesInternal", referenced from:
_IMG_LoadWEBP_RW in libSDL2_image.a(IMG_webp.o)
"_jpeg_CreateCompress", referenced from:
_IMG_SaveJPG_RW in libSDL2_image.a(IMG_jpg.o)
"_jpeg_CreateDecompress", referenced from:
_IMG_LoadJPG_RW in libSDL2_image.a(IMG_jpg.o)
"_jpeg_calc_output_dimensions", referenced from:
_IMG_LoadJPG_RW in libSDL2_image.a(IMG_jpg.o)
"_jpeg_destroy_compress", referenced from:
_IMG_SaveJPG_RW in libSDL2_image.a(IMG_jpg.o)
"_jpeg_destroy_decompress", referenced from:
_IMG_LoadJPG_RW in libSDL2_image.a(IMG_jpg.o)
"_jpeg_finish_compress", referenced from:
_IMG_SaveJPG_RW in libSDL2_image.a(IMG_jpg.o)
"_jpeg_finish_decompress", referenced from:
_IMG_LoadJPG_RW in libSDL2_image.a(IMG_jpg.o)
"_jpeg_read_header", referenced from:
_IMG_LoadJPG_RW in libSDL2_image.a(IMG_jpg.o)
"_jpeg_read_scanlines", referenced from:
_IMG_LoadJPG_RW in libSDL2_image.a(IMG_jpg.o)
"_jpeg_resync_to_restart", referenced from:
_IMG_InitJPG in libSDL2_image.a(IMG_jpg.o)
"_jpeg_set_defaults", referenced from:
_IMG_SaveJPG_RW in libSDL2_image.a(IMG_jpg.o)
"_jpeg_set_quality", referenced from:
_IMG_SaveJPG_RW in libSDL2_image.a(IMG_jpg.o)
"_jpeg_start_compress", referenced from:
_IMG_SaveJPG_RW in libSDL2_image.a(IMG_jpg.o)
"_jpeg_start_decompress", referenced from:
_IMG_LoadJPG_RW in libSDL2_image.a(IMG_jpg.o)
"_jpeg_std_error", referenced from:
_IMG_LoadJPG_RW in libSDL2_image.a(IMG_jpg.o)
_IMG_SaveJPG_RW in libSDL2_image.a(IMG_jpg.o)
"_jpeg_write_scanlines", referenced from:
_IMG_SaveJPG_RW in libSDL2_image.a(IMG_jpg.o)
"_png_create_info_struct", referenced from:
_IMG_LoadPNG_RW in libSDL2_image.a(IMG_png.o)
_IMG_SavePNG_RW_libpng in libSDL2_image.a(IMG_png.o)
"_png_create_read_struct", referenced from:
_IMG_LoadPNG_RW in libSDL2_image.a(IMG_png.o)
"_png_create_write_struct", referenced from:
_IMG_SavePNG_RW_libpng in libSDL2_image.a(IMG_png.o)
"_png_destroy_read_struct", referenced from:
_IMG_LoadPNG_RW in libSDL2_image.a(IMG_png.o)
"_png_destroy_write_struct", referenced from:
_IMG_SavePNG_RW_libpng in libSDL2_image.a(IMG_png.o)
"_png_get_IHDR", referenced from:
_IMG_LoadPNG_RW in libSDL2_image.a(IMG_png.o)
"_png_get_PLTE", referenced from:
_IMG_LoadPNG_RW in libSDL2_image.a(IMG_png.o)
"_png_get_channels", referenced from:
_IMG_LoadPNG_RW in libSDL2_image.a(IMG_png.o)
"_png_get_io_ptr", referenced from:
_png_read_data in libSDL2_image.a(IMG_png.o)
_png_write_data in libSDL2_image.a(IMG_png.o)
"_png_get_tRNS", referenced from:
_IMG_LoadPNG_RW in libSDL2_image.a(IMG_png.o)
"_png_get_valid", referenced from:
_IMG_LoadPNG_RW in libSDL2_image.a(IMG_png.o)
"_png_read_image", referenced from:
_IMG_LoadPNG_RW in libSDL2_image.a(IMG_png.o)
"_png_read_info", referenced from:
_IMG_LoadPNG_RW in libSDL2_image.a(IMG_png.o)
"_png_read_update_info", referenced from:
_IMG_LoadPNG_RW in libSDL2_image.a(IMG_png.o)
"_png_set_IHDR", referenced from:
_IMG_SavePNG_RW_libpng in libSDL2_image.a(IMG_png.o)
"_png_set_PLTE", referenced from:
_IMG_SavePNG_RW_libpng in libSDL2_image.a(IMG_png.o)
"_png_set_expand", referenced from:
_IMG_LoadPNG_RW in libSDL2_image.a(IMG_png.o)
"_png_set_gray_to_rgb", referenced from:
_IMG_LoadPNG_RW in libSDL2_image.a(IMG_png.o)
"_png_set_interlace_handling", referenced from:
_IMG_LoadPNG_RW in libSDL2_image.a(IMG_png.o)
"_png_set_longjmp_fn", referenced from:
_IMG_LoadPNG_RW in libSDL2_image.a(IMG_png.o)
_IMG_SavePNG_RW_libpng in libSDL2_image.a(IMG_png.o)
"_png_set_packing", referenced from:
_IMG_LoadPNG_RW in libSDL2_image.a(IMG_png.o)
"_png_set_read_fn", referenced from:
_IMG_LoadPNG_RW in libSDL2_image.a(IMG_png.o)
"_png_set_rows", referenced from:
_IMG_SavePNG_RW_libpng in libSDL2_image.a(IMG_png.o)
"_png_set_strip_16", referenced from:
_IMG_LoadPNG_RW in libSDL2_image.a(IMG_png.o)
"_png_set_tRNS", referenced from:
_IMG_SavePNG_RW_libpng in libSDL2_image.a(IMG_png.o)
"_png_set_write_fn", referenced from:
_IMG_SavePNG_RW_libpng in libSDL2_image.a(IMG_png.o)
"_png_write_png", referenced from:
_IMG_SavePNG_RW_libpng in libSDL2_image.a(IMG_png.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I really don't know where is the problem, because SDL links properly. I use a MacBook Air with M1 processor, macOS Monterey 12.6 and Codelite 16.6.9, which is the latest version I believe. I downloaded it using the official documentation.