trek-view / max2sphere

Takes batches of GoPro .360 frames (with GoPro EAC projection) and converts them to a more widely recognised equirectangular projection.
Apache License 2.0
26 stars 11 forks source link

`make -f Makefile` fails to run #9

Open johanngrobe opened 4 months ago

johanngrobe commented 4 months ago

When I try to run make -f Makefile on Windows 11 or make -f Makefile-Linux on WSL2 I get following output:

gcc  -Wall -O3  -o max2sphere max2sphere.o bitmaplib.o  -ljpeg -lm
max2sphere.o: file not recognized: file format not recognized
collect2.exe: error: ld returned 1 exit status
make: *** [Makefile:12: max2sphere] Error 1

What am I doing wrong?

JotaDeRodriguez commented 1 month ago

Hi, ChatGPT gave me this solution, it worked for me.

It looks like you're encountering a linker error when trying to compile a program using GCC. The message max2sphere.o: file not recognized: file format not recognized suggests that there's a problem with the object file max2sphere.o. Here are a few possible reasons and solutions for this issue:

Corrupted Object File: The object file might be corrupted due to an interrupted or faulty compilation process.

Solution: Re-compile the source files to regenerate the .o files. You can do this by cleaning the build and starting the compilation process again. If you have a make clean command in your Makefile, use it, then try building again. Mismatched Architecture: The object files might have been compiled for a different architecture than the one you're linking for.

Solution: Ensure that all object files are compiled for the same target architecture. Check any architecture-specific flags in your GCC compilation commands. Incorrect File Used: Sometimes, a non-object file might accidentally be named or treated as an object file.

Solution: Verify that max2sphere.o and bitmaplib.o are indeed the correct object files generated from corresponding source files. Here's how you could clean and recompile your project:

bash ''' make clean # if you have this in your Makefile gcc -Wall -O3 -c -o max2sphere.o max2sphere.c gcc -Wall -O3 -c -o bitmaplib.o bitmaplib.c gcc -Wall -O3 -o max2sphere max2sphere.o bitmaplib.o -ljpeg -lm ''' Replace max2sphere.c and bitmaplib.c with your actual source files if they are named differently. Make sure all commands are run in the directory containing your source and object files.

mattwynyard commented 1 month ago

You probably have old object (.o) files in your directory from a previous compile. Run MAKE CLEAN Good idea to run before each compile

On Tue, 30 Jul 2024 at 5:04 AM, Juan Rodriguez @.***> wrote:

Hi, ChatGPT gave me this solution, it worked for me.

It looks like you're encountering a linker error when trying to compile a program using GCC. The message max2sphere.o: file not recognized: file format not recognized suggests that there's a problem with the object file max2sphere.o. Here are a few possible reasons and solutions for this issue:

Corrupted Object File: The object file might be corrupted due to an interrupted or faulty compilation process.

Solution: Re-compile the source files to regenerate the .o files. You can do this by cleaning the build and starting the compilation process again. If you have a make clean command in your Makefile, use it, then try building again. Mismatched Architecture: The object files might have been compiled for a different architecture than the one you're linking for.

Solution: Ensure that all object files are compiled for the same target architecture. Check any architecture-specific flags in your GCC compilation commands. Incorrect File Used: Sometimes, a non-object file might accidentally be named or treated as an object file.

Solution: Verify that max2sphere.o and bitmaplib.o are indeed the correct object files generated from corresponding source files. Here's how you could clean and recompile your project:

bash ''' make clean # if you have this in your Makefile gcc -Wall -O3 -c -o max2sphere.o max2sphere.c gcc -Wall -O3 -c -o bitmaplib.o bitmaplib.c gcc -Wall -O3 -o max2sphere max2sphere.o bitmaplib.o -ljpeg -lm ''' Replace max2sphere.c and bitmaplib.c with your actual source files if they are named differently. Make sure all commands are run in the directory containing your source and object files.

— Reply to this email directly, view it on GitHub https://github.com/trek-view/max2sphere/issues/9#issuecomment-2256455599, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAWDLFTPTVTZTAEP7IJ7ZGDZOZYZLAVCNFSM6AAAAABGNIGJ3OVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENJWGQ2TKNJZHE . You are receiving this because you are subscribed to this thread.Message ID: @.***>