when i run a make file i get this error
\"obj/viojournal.o: file not recognized: File format not recognized collect2: ld returned 1 exit status\"
and the make f
It seems like the object file is corrupted somehow. Try deleting it to force it to be rebuilt or as @devnull suggests, do a make clean
.
(I would put this suggestion as a comment, but I don't have enough, Reputation yet)
I ran into this error recently, and I have a couple of suggestions that might help.
In my case, the makefile
(s) in question needed different CFLAGS
depending on whether the installation was 64-bit or 32-bit. Here are some lines from the README
By default, the C/C++ software are compiled in 32 bits with the options (-Os) but can be compiled in 64 bits, -m64 is added to the CFLAGS variable in <certain makefiles in the project are listed>
My suggestion is to first try adding -m64
to your CFLAGS
. If that doesn't work, delete the -m64
and replace it with -Os
.
That is, first try having the following line:
CFLAGS = -g3 -Wall -Wextra -fPIC -DREPLICATION_ENABLED -DJOURNALING_ENABLED -m64
Then, from the command line, run
make clean
Followed by whatever make
commands you use for your install.
If that doesn't work, change the line in question to
CFLAGS = -g3 -Wall -Wextra -fPIC -DREPLICATION_ENABLED -DJOURNALING_ENABLED -Os
Then make clean
and the other make
stuff.
If some of the C objects are 64-bit and some are 32-bit (I don't know if such a situation actually exists), you might have to do something different.
This worked in my case, details of which you can see here.
Please comment to let me know if it works for you.