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