Hi Dimi,
On Wed, 2003-12-31 at 16:47, Dimitrie O. Paun wrote:
> On December 31, 2003 07:42 pm, Ralf Juengling wrote:
> > okay, now it's as before:
>
> As I said, I think there's something wrong with your
> ld setup. You need to have /usr/local/lib (where
> the libwine library is) in your /etc/ld.so.conf:
I tried this today, (adding /local/lib to /etc/ld.so.conf)
but it didn't make a difference.
I then looked into winegcc.c and winewrap.c to find out
what winwgcc is actually doing. It is creating a shared
library (dll) and a little wrapper executable to load the
shared library.
This should not be necessary with the code in question and
I would rather like to build just one executable. So I wrote
a Makefile that does this (not using winegcc & co) by
calling winebuild explicitly (see below).
It seems to work, but when I start the executable by
wine phaeaco.exe.so
I see the application's windows appearing and immediately
disappearing and get the following error messages:
err:win:WIN_FindWndPtr window 0x20030 belongs to other process
err:win:WIN_FindWndPtr window 0x20030 belongs to other process
I wonder whether this error has to do with the way I built
the executable. The Makefile is as follows:
------ Makefile ------------------------------------------
INCLUDE_PATH = /local/include/wine
LIBRARY_PATH = /local/lib
# This should be replaced by wildcard expression as soon as all
# sources actually participate in the built.
PHAEACO_CSRCS = ../gensrc/Statist.c
PHAEACO_CXXSRCS = Experim.cpp Login.cpp Phaeaco.cpp TextWnd.cpp \
Intrface.cpp Mentor.cpp Solver.cpp List.cpp
... (some more)
PHAEACO_RCSRCS = phaeaco.rc
PHAEACO_DLLS = advapi32 comdlg32 gdi32 kernel32 odbc32 ole32 \
oleaut32 shell32 user32 winspool winmm comctl32
DEFINES = -D__WINE__
INCLUDES = -I. -I../geninc -I../coginc -I$(INCLUDE_PATH)
-I$(INCLUDE_PATH)/windows
CC = gcc
CFLAGS = -g -fpack-struct $(DEFINES)
CXX = g++
CXXFLAGS = -g -fpack-struct $(DEFINES)
CPPFLAGS = $(INCLUDES)
OBJS = $(PHAEACO_CSRCS:.c=.o) $(PHAEACO_CXXSRCS:.cpp=.o)
RESS = $(PHAEACO_RCSRCS:.rc=.res)
LDFLAGS = -L$(LIBRARY_PATH) -L$(LIBRARY_PATH)/wine
LIBS = -lwine -lm
WBLIBS = $(patsubst %,-l%,$(PHAEACO_DLLS))
phaeaco.exe.so : $(OBJS)
winebuild -o phaeaco.spec.c --exe $(@) -mgui $(OBJS) $(RES) $(LDFLAGS)
$(WBLIBS)
gcc -o phaeaco.spec.o -c phaeaco.spec.c
$(CXX) -shared -Wl,-Bsymbolic,-z,defs -o $@ phaeaco.spec.o $(OBJS)
$(LDFLAGS) $(LIBS)
strip --strip-all $(@)
%.o : %.cpp
$(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -o $@ $<
%.res : %.rc
wrc $(DEFINES) $(INCLUDES) -o $@ $<
clean:
rm -f ./*.o ../gensrc/*.o ../cogsrc/*.o
--
Ralf Juengling <juenglin(a)cse.ogi.edu>