Ошибка: неразрешенная внешняя

S:\builds\g2.0\upr\g\platform\client\errlib>make
MAKE Version 5.0  Copyright (c) 1987, 1997 Borland International
tlink32 /v /ap /aa /Tpd /OS /LE:\BC5\LIB @MAKE0000.@@@
Turbo Link  Version 2.0.68.0 Copyright (c) 1993,1997 Borland International
Warning: Attempt to export non-public symbol 'WEP'
Warning: Attempt to export non-public symbol 'ERRSETDLG'
Warning: Attempt to export non-public symbol 'ERR_LOG'
Warning: Attempt to export non-public symbol 'ERR_LOG_INT'
Warning: Attempt to export non-public symbol 'HDLR_ERR_DISPLAY'
Warning: Attempt to export non-public symbol 'ISDONE'
Warning: Attempt to export non-public symbol 'RPC_RETMSG'
Warning: Attempt to export non-public symbol 'RPC_M_ON'
Warning: Attempt to export non-public symbol 'RPC_M_OFF'
Warning: .DEF file heap reserve size < 64K; 1MB default will be used
Error: Unresolved external 'B_GetUserDir' referenced from module err_log.c
Error: Unresolved external 'B_getstudyname' referenced from module err_log.c
Error: Unresolved external 'B_getcustname' referenced from module err_log.c

это ошибки компоновки, которые я получаю при компиляции второго модуля, т. е. (Errlib), который зависит от файла lib первых модулей, т. е. (barlib.lib). Первый модуль уже скомпилирован, и он сгенерировал файл dll и .lib.

Первый модуль make file (barlib)

#
# This makefile builds the BARLIB dll:
#         barlib.dll
# and a stub version:
#         sbarlib.dll
# and the associated import library:
#         barlib.lib
#
# The stub version must be renamed in order to "use" it.
#
# The following macros must be set to run this makefile:
#    PLATF_LIB       Platform library directory (i.e. c:\p3.0\client\lib)
#    PLATF_INC       Platform header directory (i.e. c:\p3.0\client\hdr)
#    PLATF_DLL       Platform DLL directory (i.e. c:\p3.0\client\dll)
#    BORLAND_LIB     Borland compiler library directory (i.e. c:\bc4\lib)
#    BORLAND_INC     Borland compiler header directory (i.e. c:\bc4\include)
#
.autodepend
# Set DEBUG to 0 (production) or 1 (development) (may be overridden
# by environment variable on build PC).
DEBUG = 1

# Common macros
NAME        =barlib
#MEMMODEL    =l
OBJS        =alltbls.obj \
breaddir.obj \
custudy.obj \
getlist.obj \
getname.obj \
rdtbl.obj \
rdwrdesc.obj \
tableio.obj \
userdir.obj
COMLIBS     =
RCFILES     =

# Application specific macros
COMBIN      =$(PLATF_DLL)
COMLIB      =$(PLATF_LIB)
COMINC      =-I$(PLATF_INC);$(BORLAND_INC)
RCINC       =-I$(PLATF_INC);$(BORLAND_INC)
LIBPATH     =$(BORLAND_LIB)
#WINLIBS     =import crtldll
WINLIBS     =import32 cw32i
LIBS        =$(COMLIBS) $(TARGETLIBS) $(WINLIBS)

# Main (default) target
goal:       $(COMBIN)\$(NAME).dll $(COMBIN)\s$(NAME).dll $(COMLIB)\$(NAME).lib

# Build options macros
!if $(DEBUG)
# Debugging options
#COMLOPT     =/v /l /m /Twd /L$(LIBPATH)
COMLOPT     =-v -aa -Tpd -L$(LIBPATH)

CLOPT       =-y -v -O-
!else
# No Debugging options
COMLOPT     =/x /Twd /L$(LIBPATH)
CLOPT       [email protected]
!endif

CPU         =-3
WARN        =-w
#MEMMOD      =-m$(MEMMODEL)!
MEMMOD      =-l$(MEMMODEL)!
#CFLAGS      =bcc32 -c -P-.C -WDE -D_RTLDLL $(COMINC) $(CPU) $(MEMMOD) $(CLOPT) $(WARN)
CFLAGS      =bcc32 -c -P-.C -WDR -D_RTLDLL $(COMINC) $(CPU) $(CLOPT) $(WARN)
LINK        =ilink32 $(COMLOPT)
RC          =brc32

#  Standard inference rules
.c.obj:
$(CFLAGS) $*.c

.rc.res:
$(RC) $(RCINC) -r $*.rc

$(COMBIN)\$(NAME).dll: $(OBJS) $(NAME).def $(COMLIBS)
$(LINK) @&&|
c0d32 $(OBJS),        \
$@,     \
$(NAME).map,    \
$(COMLIBS) $(WINLIBS),  \
$(NAME).def
|

$(COMBIN)\s$(NAME).dll: sbarlib.obj $(NAME).def
$(LINK) @&&|
c0d32 sbarlib.obj,        \
$@,     \
s$(NAME).map,    \
$(WINLIBS),  \
$(NAME).def
|

$(COMLIB)\$(NAME).lib: $(NAME).def
implib $@ $?

alltbls.c: ..\..\common\barlib\alltbls.c
if exist $@ del $@
unix2dos $? $@

breaddir.c: ..\..\common\barlib\breaddir.c
if exist $@ del $@
unix2dos $? $@

custudy.c: ..\..\common\barlib\custudy.c
if exist $@ del $@
unix2dos $? $@

getlist.c: ..\..\common\barlib\getlist.c
if exist $@ del $@
unix2dos $? $@

getname.c: ..\..\common\barlib\getname.c
if exist $@ del $@
unix2dos $? $@

rdtbl.c: ..\..\common\barlib\rdtbl.c
if exist $@ del $@
unix2dos $? $@

rdwrdesc.c: ..\..\common\barlib\rdwrdesc.c
if exist $@ del $@
unix2dos $? $@

tableio.c: ..\..\common\barlib\tableio.c
if exist $@ del $@
unix2dos $? $@

userdir.c: ..\..\common\barlib\userdir.c
if exist $@ del $@
unix2dos $? $@

clean:
-del *.obj
-del *.map

второй модуль make file (errlib)

#
# This makefile builds the ERRLIB dll:
#         errlib.dll
# and a stub version:
#         serrlib.dll
# and the associated import library:
#         errlib.lib
#
# The stub version must be renamed in order to "use" it.
#
# The following macros must be set to run this makefile:
#    PLATF_LIB       Platform library directory (i.e. c:\p3.0\client\lib)
#    PLATF_INC       Platform header directory (i.e. c:\p3.0\client\hdr)
#    PLATF_DLL       Platform DLL directory (i.e. c:\p3.0\client\dll)
#    BORLAND_LIB     Borland compiler library directory (i.e. c:\bc4\lib)
#    BORLAND_INC     Borland compiler header directory (i.e. c:\bc4\include)
#
.autodepend
# Set DEBUG to 0 (production) or 1 (development) (may be overridden
# by environment variable on build PC).
DEBUG = 1

# Common macros
NAME        =errlib
#MEMMODEL    =32
OBJS        =err_log.obj \
errhdisp.obj \
gwrnflag.obj \
isdone.obj \
rcretmsg.obj
COMLIBS     = $(PLATF_LIB)\barlib.lib
RCFILES     =

# Application specific macros
COMBIN      =$(PLATF_DLL)
COMLIB      =$(PLATF_LIB)
COMINC      =-I$(PLATF_INC);$(BORLAND_INC)
RCINC       =-I$(PLATF_INC);$(BORLAND_INC)
LIBPATH     =$(BORLAND_LIB)
#WINLIBS     =import crtldll
WINLIBS     =import32 cw32i
LIBS        =$(COMLIBS) $(TARGETLIBS) $(WINLIBS)
#BARLIBPATH  =S:\builds\g2.0\upr\g\platform\client\barlib

# Main (default) target
goal:       $(COMBIN)\$(NAME).dll $(COMBIN)\s$(NAME).dll $(COMLIB)\$(NAME).lib

# Build options macros
!if $(DEBUG)
# Debugging options
#COMLOPT     =/v /l /m /Twd /L$(LIBPATH)
COMLOPT     =/v /ap /aa /Tpd /OS /L$(LIBPATH)
CLOPT       =-y -v -O-
!else
# No Debugging options
COMLOPT     =/v /ap /aa /Tpd /OS/ /L$(LIBPATH)
CLOPT       [email protected]
!endif

CPU         =-3
WARN        =-w
MEMMOD      =-l$(MEMMODEL)!
#CFLAGS      =bcc -c -P-.C -WDE -D_RTLDLL $(COMINC) $(CPU) $(MEMMOD) $(CLOPT) $(WARN)
CFLAGS      =bcc32 -c -P-.C -WDE -D_RTLDLL $(COMINC) $(CPU) $(CLOPT) $(WARN)
LINK        =tlink32 $(COMLOPT)
RC          =brc32

#  Standard inference rules
.c.obj:
$(CFLAGS) $*.c

.rc.res:
$(RC) $(RCINC) -r $*.rc

$(COMBIN)\$(NAME).dll: $(OBJS) $(NAME).def $(COMLIBS)
$(LINK) @&&|
c0d32 $(OBJS),        \
$@,     \
$(NAME).map,    \
$(COMLIBS) $(WINLIBS),  \
$(NAME).def
|

$(COMBIN)\s$(NAME).dll: serrlib.obj $(NAME).def
$(LINK) @&&|
c0d32 serrlib.obj,        \
$@,     \
s$(NAME).map,    \
$(WINLIBS),  \
$(NAME).def
|

$(COMLIB)\$(NAME).lib: $(NAME).def
implib $@ $?

err_log.c: ..\..\common\errlib\err_log.c
if exist $@ del $@
unix2dos $? $@

errhdisp.c: ..\..\common\errlib\errhdisp.c
if exist $@ del $@
unix2dos $? $@

gwrnflag.c: ..\..\common\errlib\gwrnflag.c
if exist $@ del $@
unix2dos $? $@

isdone.c: ..\..\common\errlib\isdone.c
if exist $@ del $@
unix2dos $? $@

#msg_hand.c: ..\..\common\errlib\msg_hand.c
#   if exist $@ del $@
#   unix2dos $? $@

#serrlib.c: ..\..\common\errlib\serrlib.c
#   if exist $@ del $@
#   unix2dos $? $@

rcretmsg.c: ..\..\common\errlib\rcretmsg.c
if exist $@ del $@
unix2dos $? $@clean:
-del *.obj
-del *.map

Определение файла barlib

LIBRARY BARLIB
CODE PRELOAD MOVEABLE DISCARDABLE
DATA PRELOAD MOVEABLE SINGLE
HEAPSIZE 50000
EXPORTS
B_INIT_TABLES                  @2
B_ADDSTUDY                     @3
B_SELSTUDY                     @4
B_SVSTUDY                      @5
B_RMSTUDY                      @6
B_RMWKSTUDY                    @7
B_CKCHANGE                     @8
B_DISOWNWKSTUDY                @9
B_RMCUSTOMER                   @10
B_MVCUSTOMER                   @11
B_GETCUSTLIST                  @12
B_GETSTUDYLIST                 @13
B_GETCUSTNAME                  @14
B_GETSTUDYNAME                 @15
B_RDTBLARRAY                   @16
B_RDCUSTDESC                   @17
B_WRCUSTDESC                   @18
B_RDSTUDYDESC                  @19
B_WRSTUDYDESC                  @20
B_SETWKSTUDY                   @21
B_TBL_OPEN                     @22
B_TBL_READ                     @23
B_TBL_WRITE                    @24
B_TBL_DELETE                   @25
B_TBL_UPDATE                   @26
_B_TBL_DOCHG                   @27
_B_TBL_UNDOCHG                 @28
B_TBL_TERMCHG                  @29
B_TBL_CLOSE                    @30
B_TBL_STATUS                   @31
B_GETUSERDIR                   @32
B_SETUSERDIR                   @33

Пожалуйста, помогите в устранении этих ошибок ссылок.
Спасибо!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]