Unexpected message from winebuild...

Bill Medland billmedland at mercuryspeed.com
Wed Apr 2 08:23:47 CST 2003


On April 1, 2003 09:59 pm, Kevin Cousins wrote:
> ...when attempting to build a WineLib application.
>
> Remember, I'm attempting to get something that will run-time link
> against a native DLL, so I take my code, run it by "winemaker", run
> "./configure", then "make", all with options I believe to be
> appropriate.  In particular, given export WINEDIR=/home/kevin/wine, the
> root of my Wine source tree checked out from winehq CVS yesterday, and
> export DLLINCDIR=/home/kevin/include, then from within the directory
> containing the C source code for my simple console app I execute the
> following:
>
> $ winemaker --cuiexe -I${DLLINCDIR} -I${WINEDIR}
> [...snip...]
> $ ./configure --with-wine=${WINEDIR} \
> --with-wine-dlls=${WINEDIR}/libs/dlls --srcdir=`pwd` \
> --with-wine-libraries=${WINEDIR}/libs/wine:${WINEDIR}/libs/uuid:${WINEDIR}/
>libs/unicode [...snip...]
> $ make
> [...snip...]
>
>
>
> Until make executes, there seems to be no obvious problem (at least to
> my eyes), and even then, as the compilation happens, I get a nice file
> called "prog.o" written.
>
> However, as "winebuild" executes, I see the following:
>
> ---
> LD_LIBRARY_PATH="/home/kevin/wine/libs/wine:/home/kevin/wine/libs/unicode:$
>LD_LIBRARY_PATH" /home/kevin/wine/tools/winebuild/winebuild -fPIC -o
> prog.exe.spec.c --exe prog.exe -mcui   prog.o   -L/home/kevin/lib
> -L/home/kevin/lib/wine  -ladvapi32 -lcomdlg32 -lgdi32 -lkernel32 -lodbc32
> -lole32 -loleaut32 -lshell32 -luser32 -lwinspool could not open .def file
> for advapi32
> ---
>
> I don't believe I even need anything from advapi32.dll.so, let alone
> most of the other Wine DLLs mentioned on the winebuild command line.
> Even if I hack the generated Makefile so as to remove mention of any
> Wine DLLs on the winebuild command line, winebuild still complains about
> not opening "...a .def file for ntdll".
>
> On a related note, the configure script generated by winemaker complains
> about test linking against -L${WINEDIR}/dlls -lntdll.dll and subsequent
> equivalent builtin DLLs such as -lkernel32.dll and -luser32.dll.  My
> quick hack is merely to clone the symbolic links in ${WINEDIR}/dlls to
> add a "lib" prefix, vis:
>
> $ ( cd ${WINEDIR}/dlls ; ls -l *ntdll.dll* )
>   lrwxrwxrwx    1 kevin    18 Apr  1 15:29 ntdll.dll.so ->
> ntdll/ntdll.dll.so lrwxrwxrwx    1 kevin    18 Apr  1 15:29 libntdll.dll.so
> -> ntdll/ntdll.dll.so $
>
> That keeps configure happy, but I wonder what I'm doing wrong.  This is
> Wine built from CVS as of 20030401 (i.e. yesterday).
>
> Suggestions?  Particularly for the wanted .def files.  They're %^*&@#
> builtin DLLs!

Kevin

Hopefully someone will get back to you today, but here's my (not very useful) 
additions.

I haven't touched winemaker for probably over six months and in that time it 
looks like its all changed.

If you don't need any dlls linked in then why are you bothering with 
winebuild.  However if you are using functions that are implemented in dlls 
(whether in native Microsoft ones or wine builtin ones) then the "linking 
system" needs to know about them.  Since this is not necessarily under VC++ 
winebuild is going to have to do that, and that is done in the def files.

I see a whole load of def files in my /usr/local/lib/wine; don't you have them 
there?

Hopefully that will keep you going until one of the experts turns up.

-- 
Bill Medland
ACCPAC International, Inc.
medbi01 at accpac.com
Corporate: www.accpac.com
Hosted Services: www.accpaconline.com



More information about the wine-devel mailing list