Resolving winelib dll dependencies

Nix N. Nix nix at go-nix.ca
Sun Nov 10 00:56:01 CST 2002


I have an application that consists of a single DLL and the EXE.

I have the sources required for the DLL in one directory and I have used
winemaker --dll to create the infrastructure for building the winelib
dll.  It worked.  So, now, I have "nix_ctls.dll.so".  My problem is that
I cannot, for some reason use nix_ctls.dll.so as I would, say
comctl32.dll.so .  What I mean is this:

The sources for the EXE are in another directory.  Both are
subdirectories of the "project" directory.

The name of the EXE is supposed to be "iconmake.exe", if it were
compiled under Windoze.  So, naturally, my Makefile contains a setting
called "iconmake_DLLS".  To this setting I have appended "nix_ctls.dll"
and to the "iconmake_DLL_PATH" I have appended "-L../nix_ctls".  This
makes everything work, except the spec thing.  This is what that one
says:

gcc -c -g -O2 -fPIC  -D_REENTRANT -DWINELIB  -I../common  -I. 
-I/usr/wine/include/wine -o iconmake.spec.o iconmake.spec.c
gcc -shared -Wl,-Bsymbolic -o iconmake.so dlg_box.o filedlgs.o
mdi_icon.o ../common/helper.o ../common/debugmsg.o ../common/instance.o
../common/dynarray.o mdichild.o toolbars.o   iconmake.spec.o   
-L/usr/wine/lib    -lwine -lwine_unicode -lwine_uuid -lm
dlg_box.o: In function `PickIconDlg':
/home/nix/source/mdi_icon/iconmake/dlg_box.c:396: undefined reference to
`InitPicPick'
mdichild.o: In function `ChildWndProc':
/home/nix/source/mdi_icon/iconmake/mdichild.c:86: undefined reference to
`InitEditorWindow'
toolbars.o: In function `CreateTheRebar':
/home/nix/source/mdi_icon/iconmake/toolbars.c:23: undefined reference to
`InitColourControl'

Where do I specify "nix_ctls.dll" and the corresponding path
"../nix_ctls" in the Makefile so that it will be added to this command
as it is added to the command before it, which is:

LD_LIBRARY_PATH="/usr/wine/lib:/usr/wine/lib:$LD_LIBRARY_PATH:../nix_ctls" /usr/wine/bin/winebuild -fPIC -o iconmake.spec.c
-res mdi_icon.res -L/usr/wine/lib -L../nix_ctls -L/usr/wine/lib/wine 
-ladvapi32.dll -lcomdlg32.dll -lgdi32.dll -lkernel32.dll -lodbc32.dll
-lole32.dll -loleaut32.dll -lshell32.dll -luser32.dll -lcomctl32.dll
-lnix_ctls.dll -lwinspool.drv  -m gui -exe iconmake dlg_box.o filedlgs.o
mdi_icon.o ../common/helper.o ../common/debugmsg.o ../common/instance.o
../common/dynarray.o mdichild.o toolbars.o

This command works fine, because the library paths and -l settings are
all there.




Thanks for your help.




More information about the wine-devel mailing list