How to create a static build
Steven Schveighoffer
schveiguy at yahoo.com
Wed Nov 7 07:15:58 PST 2007
"mandel" wrote
> Steven Schveighoffer Wrote:
>
>>
>> "mandel" wrote
>> > Hi,
>> >
>> > I like to know how I can make a static build.
>> > I can't get my program binaries to run on other linux
>> > systems because some shared libs are missing.
>>
>> You could use -static on the link line. If you are using dmd, just copy
>> the
>> link line it outputs to gcc and add the -static argument.
>>
>> However, I don't recommend using this. I have heard there are problems
>> with
>> statically linking against glibc, and the maintainers say they aren't
>> going
>> to fix it because nobody should be using static linking anymore...
>>
>> -Steve
>>
> glibc..ok. But what about other libraries like zlib?
> The issue is that I get error messages like
> "./main: /usr/lib/libz.so.1: no version information available (required by
> ./main)"
> the program get mostly killed after that.
>
Ah. So you don't care if the binary is static or not, but you want to link
statically against a library? that's easy.
Most libraries have two forms on linux, a .so form, and a .a form. To link
specifically against the .a form, you have to specify the library file on
the command line:
gcc .... -lz
becomes:
gcc .... /usr/lib/libz.a
This should do the trick.
-Steve
More information about the Digitalmars-d
mailing list