Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

gcc-10-ar thinks the invalid "." option is being passed to it

I’m compiling a game using the Source Engine. When I run make, after a while the archiver tool complains about an invalid option ".":

/usr/bin/ar: invalid option -- '.'

this happens with every archiver I have installed: gcc-10-ar, llvm-10-ar, and busybox ar.

The command the makefile is trying to run is:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

gcc-ar-10 ../lib/public/linux32/raytrace.a ./obj_raytrace_linux32/release/raytrace.o ./obj_raytrace_linux32/release/trace2.o ./obj_raytrace_linux32/release/trace3.o

I don’t use the archiver tool often, but this looks like a valid command to me.
Normally the issue with those is that a dash is being prepended which makes the archiver tool think whatever is following it are the "mini options" like -lm

In my case there aren’t any dashes at all. I think the . is from the path but that should be interpreted as a file path and not a command-line argument.

>Solution :

The first argument to ar is supposed to be one or more characters indicating the operation to perform (optionally prefixed with -) and modifiers to this operation.

If you want to create a new archive from the object files, you probably want rcs, which asks ar to insert the listed files into the archive with replacement (r), create the archive if necessary (c) and to create an index for the archive (s).

So for example:

gcc-ar-10 rcs ../lib/public/linux32/raytrace.a ./obj_raytrace_linux32/release/raytrace.o ./obj_raytrace_linux32/release/trace2.o ./obj_raytrace_linux32/release/trace3.o

I assume that ar is giving you the error since it tries to interpret the first . of the first argument as one of these operation instructions.

See also man ar.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading