public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* libglut is missing library for MinGW static linking
@ 2018-09-27 13:42 Matt D.
  2018-09-27 18:20 ` cyg Simple
  0 siblings, 1 reply; 2+ messages in thread
From: Matt D. @ 2018-09-27 13:42 UTC (permalink / raw)
  To: cygwin

libglut-devel provides libglut.a and libglut.dll.a but linking libglut.a 
with either "-lglut" or "-lglut.dll" both depend on either cygglut-3.dll 
or libglut-0.dll respectively when compiling for Cygwin or MinGW.

I understand that this isn't a big deal for Cygwin binaries as it's not 
possible to statically link those executables anyways. But glut has the 
ability to link statically and this is of benefit on Windows with MinGW 
for convenience and ease of distribution.

To perform static linking against glut, I have to download 
"libfreeglut_static.a" as provided by http://freeglut.sourceforge.net. I 
can still use libglut but the static library provides the missing 
dependencies to mitigate the need for the shared library.

I can compile as such:

i686-w64-mingw32-g++.exe -DFREEGLUT_STATIC main.cpp -lglut 
-lfreeglut_static -lgdi32 -lwinmm -lglu32 -lopengl32 -L. -oa.out

The resulting executable is completely static and stand-alone and does 
not require a shared library. The key here is the define 
"FREEGLUT_STATIC" along with libfreeglut_static provided from the 
freeglut website.

I don't know what Cygwin's policy is on providing static libraries for 
MinGW but this is a very good candidate as it already has all of the 
necessary declarations defined.


Matt D.

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: libglut is missing library for MinGW static linking
  2018-09-27 13:42 libglut is missing library for MinGW static linking Matt D.
@ 2018-09-27 18:20 ` cyg Simple
  0 siblings, 0 replies; 2+ messages in thread
From: cyg Simple @ 2018-09-27 18:20 UTC (permalink / raw)
  To: cygwin

On 9/27/2018 9:40 AM, Matt D. wrote:
> libglut-devel provides libglut.a and libglut.dll.a but linking libglut.a
> with either "-lglut" or "-lglut.dll" both depend on either cygglut-3.dll
> or libglut-0.dll respectively when compiling for Cygwin or MinGW.
> 

Unless you've directed the build process to use static libraries the
default choice is dynamic.  So -lglut and -lglut.dll are both one and
the same for -lglut will look for -lglut.dll and use it instead.

> I understand that this isn't a big deal for Cygwin binaries as it's not
> possible to statically link those executables anyways. But glut has the
> ability to link statically and this is of benefit on Windows with MinGW
> for convenience and ease of distribution.
> 
> To perform static linking against glut, I have to download
> "libfreeglut_static.a" as provided by http://freeglut.sourceforge.net. I
> can still use libglut but the static library provides the missing
> dependencies to mitigate the need for the shared library.
> 

You could use /usr/lib/libglut.a in the same fashion.  You can verify if
the library actually is a static library using `nm /usr/lib/libglut.a |
grep _imp_`; if any _imp_ return from the grep then this isn't a static
library.

> I can compile as such:
> 
> i686-w64-mingw32-g++.exe -DFREEGLUT_STATIC main.cpp -lglut
> -lfreeglut_static -lgdi32 -lwinmm -lglu32 -lopengl32 -L. -oa.out
> 
> The resulting executable is completely static and stand-alone and does
> not require a shared library. The key here is the define
> "FREEGLUT_STATIC" along with libfreeglut_static provided from the
> freeglut website.
> 
> I don't know what Cygwin's policy is on providing static libraries for
> MinGW but this is a very good candidate as it already has all of the
> necessary declarations defined.
You would need to follow the protocol for getting a package accepted.
See the FAQ for that information.

-- 
cyg Simple

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-09-27 18:20 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-27 13:42 libglut is missing library for MinGW static linking Matt D.
2018-09-27 18:20 ` cyg Simple

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).