[gmx-developers] compiling home-made GMX code under Cygwin

Benjamin Bouvier bbouvie at gwdg.de
Wed Aug 24 15:08:55 CEST 2005


Hi all,

I'm trying to compile a home-made program, which uses gromacs headers & 
libraries (v. 3.2.1), under Cygwin/WinXP (gcc 3.4.4) on my laptop. The 
code is in C++. It compiles and links fine under Linux (gcc 3.3.3, GMX 
v. 3.2.1).

I've compiled FFTW and GMX with no problems under Cygwin. Everything 
seems to work.
The template application provided in the share/template dir of the GMX 
distro compiles and links fine using the provided Makefile. However, it 
issues the warnings:

Info: resolving __XmStrings by linking to __imp___XmStrings (auto-import)
Info: resolving _xmSeparatorWidgetClass by linking to 
__imp__xmSeparatorWidgetClass (auto-import)
Info: resolving _XtStrings by linking to __imp__XtStrings (auto-import)
Info: resolving _applicationShellWidgetClass by linking to 
__imp__applicationShellWidgetClass (auto-import)
Info: resolving _xmPushButtonWidgetClass by linking to 
__imp__xmPushButtonWidgetClass (auto-import)
Info: resolving _xmTextFieldWidgetClass by linking to 
__imp__xmTextFieldWidgetClass (auto-import)
Info: resolving _xmToggleButtonWidgetClass by linking to 
__imp__xmToggleButtonWidgetClass (auto-import)
Info: resolving _xmLabelWidgetClass by linking to 
__imp__xmLabelWidgetClass (auto-import)

Now when I compile my own code, even though the makefile is very similar 
to that of the template (c++ is used instead of cc for compilation and 
linkage, but that works great under Linux), I get linker errors such as:

/usr/local/gromacs/i686-pc-cygwin/lib/libgmx.a(mgmx.o):mgmx.c:(.text+0x14e): 
undefined reference to `__XmStrings'
/usr/local/gromacs/i686-pc-cygwin/lib/libgmx.a(mgmx.o):mgmx.c:(.text+0x159): 
undefined reference to `__XmStrings'
/usr/local/gromacs/i686-pc-cygwin/lib/libgmx.a(mgmx.o):mgmx.c:(.text+0x15e): 
undefined reference to `__XmStrings'
/usr/local/gromacs/i686-pc-cygwin/lib/libgmx.a(mgmx.o):mgmx.c:(.text+0x193): 
undefined reference to `_XtSetValues'
/usr/local/gromacs/i686-pc-cygwin/lib/libgmx.a(mgmx.o):mgmx.c:(.text+0x19b): 
undefined reference to `_XmStringFree'
/usr/local/gromacs/i686-pc-cygwin/lib/libgmx.a(mgmx.o):mgmx.c:(.text+0x1ad): 
undefined reference to `_XtManageChild'
/usr/local/gromacs/i686-pc-cygwin/lib/libgmx.a(mgmx.o):mgmx.c:(.text+0x207): 
undefined reference to `_XtUnmanageChild'
/usr/local/gromacs/i686-pc-cygwin/lib/libgmx.a(mgmx.o):mgmx.c:(.text+0x262): 
undefined reference to `_XtUnmanageChild'
/usr/local/gromacs/i686-pc-cygwin/lib/libgmx.a(mgmx.o):mgmx.c:(.text+0x2b4): 
undefined reference to `__XmStrings'
and many more...

I know that Cygwin has a special way of dealing with libraries 
(so-called auto-import). But why auto-import works in the first case and 
not in the second is a mystery to me. Adding --enable-auto-import to the 
linker options does not help (this should be the default behavior anyway).

Any clue would be welcome, thanks!


-- 
Dr. Benjamin BOUVIER
--------------------
Theoretical and Computational Biophysics Department
Max-Planck-Institut für biophysikalische Chemie
Am Fassberg 11
D-37077 Göttingen, Germany
Tel:      +49/551/201-2320
Fax:      +49/551/201-2302
email:    benjamin.bouvier[at-no-spam]mpi-bpc.mpg.de
homepage: http://www.mpibpc.mpg.de/abteilungen/070/bbouvie/index.htm



More information about the gromacs.org_gmx-developers mailing list