www.digitalmars.com         C & C++   DMDScript  

c++ - Linker Problem

reply Pascal <Pascal_member pathlink.com> writes:
Hi,

I have a problem with the linker.

Here is my commande line 

dmc.exe -DBUILD_DLL -D_WIN32 -mn -WD -NL kernel32.lib -NL newmath11dll.lib
kinemodstd.cpp

and here is the output :

link
kinemodstd,,,C:\dm840c\dm\lib\kernel32+C:\dm840c\dm\lib\newmath11dll,kinemodstd/noi;

OPTLINK (R) for Win32  Release 7.50B1
Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved

OPTLINK : Error 180: No Match Found for Export/ENTRY -  : nbmodel
OPTLINK : Error 180: No Match Found for Export/ENTRY -  : namemodel
OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelexp
OPTLINK : Error 180: No Match Found for Export/ENTRY -  : imagemodel
OPTLINK : Error 180: No Match Found for Export/ENTRY -  : stdmodeldiff
OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelnbpar
OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelparname
OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelnbspar
OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelsparname
OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelequalin
OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelsecpar
OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelgradient
OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelautostart
kinemodstd.obj(kinemodstd) 
Error 42: Symbol Undefined __acrtused_dll
kinemodstd.obj(kinemodstd) 
Error 42: Symbol Undefined __fltused
kinemodstd.obj(kinemodstd) 
Error 42: Symbol Undefined _exp
kinemodstd.obj(kinemodstd) 
Error 42: Symbol Undefined _log
kinemodstd.obj(kinemodstd) 
Error 42: Symbol Undefined _pow
kinemodstd.obj(kinemodstd) 
Error 42: Symbol Undefined _strcpy
OPTLINK : Warning 174: 32-bit Segments Inappropriate for 16-bit Segmented output

OPTLINK : Error 81: Cannot EXPORT : nbmodel
OPTLINK : Error 81: Cannot EXPORT : namemodel
OPTLINK : Error 81: Cannot EXPORT : modelexp
OPTLINK : Error 81: Cannot EXPORT : imagemodel
OPTLINK : Error 81: Cannot EXPORT : stdmodeldiff
OPTLINK : Error 81: Cannot EXPORT : modelnbpar
OPTLINK : Error 81: Cannot EXPORT : modelparname
OPTLINK : Error 81: Cannot EXPORT : modelnbspar
OPTLINK : Error 81: Cannot EXPORT : modelsparname
OPTLINK : Error 81: Cannot EXPORT : modelequalin
OPTLINK : Error 81: Cannot EXPORT : modelsecpar
OPTLINK : Error 81: Cannot EXPORT : modelgradient
OPTLINK : Error 81: Cannot EXPORT : modelautostart
kinemodstd.obj(kinemodstd) 
Error 35: Cannot Reach TARGET from FRAME at Relative 003E6H  from
Segment _TEXT
FRAME  = Frame of Group FLAT 0000
TARGET = Segment _DATA 00000H 
FIXUPP Type = 32-bit Offset

--- errorlevel 33


Is somebody can help me?

Thank's

Pascal
Jun 15 2004
parent reply "Walter" <newshound digitalmars.com> writes:
You'll need a module definition file
www.digitalmars.com/ctg/ctgDefFiles.html to create a DLL, because the linker
needs to be told that it is building a DLL. Also, you turned off the default
library search with -NL, which is why symbols like _strcpy are undefined,
since they are in the default library.


"Pascal" <Pascal_member pathlink.com> wrote in message
news:camsj6$1vot$1 digitaldaemon.com...
 Hi,

 I have a problem with the linker.

 Here is my commande line

 dmc.exe -DBUILD_DLL -D_WIN32 -mn -WD -NL kernel32.lib -NL newmath11dll.lib
 kinemodstd.cpp

 and here is the output :

 link
kinemodstd,,,C:\dm840c\dm\lib\kernel32+C:\dm840c\dm\lib\newmath11dll,kinemod std/noi;
 OPTLINK (R) for Win32  Release 7.50B1
 Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved

 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : nbmodel
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : namemodel
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelexp
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : imagemodel
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : stdmodeldiff
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelnbpar
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelparname
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelnbspar
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelsparname
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelequalin
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelsecpar
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelgradient
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelautostart
 kinemodstd.obj(kinemodstd)
 Error 42: Symbol Undefined __acrtused_dll
 kinemodstd.obj(kinemodstd)
 Error 42: Symbol Undefined __fltused
 kinemodstd.obj(kinemodstd)
 Error 42: Symbol Undefined _exp
 kinemodstd.obj(kinemodstd)
 Error 42: Symbol Undefined _log
 kinemodstd.obj(kinemodstd)
 Error 42: Symbol Undefined _pow
 kinemodstd.obj(kinemodstd)
 Error 42: Symbol Undefined _strcpy
 OPTLINK : Warning 174: 32-bit Segments Inappropriate for 16-bit Segmented
output
 OPTLINK : Error 81: Cannot EXPORT : nbmodel
 OPTLINK : Error 81: Cannot EXPORT : namemodel
 OPTLINK : Error 81: Cannot EXPORT : modelexp
 OPTLINK : Error 81: Cannot EXPORT : imagemodel
 OPTLINK : Error 81: Cannot EXPORT : stdmodeldiff
 OPTLINK : Error 81: Cannot EXPORT : modelnbpar
 OPTLINK : Error 81: Cannot EXPORT : modelparname
 OPTLINK : Error 81: Cannot EXPORT : modelnbspar
 OPTLINK : Error 81: Cannot EXPORT : modelsparname
 OPTLINK : Error 81: Cannot EXPORT : modelequalin
 OPTLINK : Error 81: Cannot EXPORT : modelsecpar
 OPTLINK : Error 81: Cannot EXPORT : modelgradient
 OPTLINK : Error 81: Cannot EXPORT : modelautostart
 kinemodstd.obj(kinemodstd)
 Error 35: Cannot Reach TARGET from FRAME at Relative 003E6H  from
 Segment _TEXT
 FRAME  = Frame of Group FLAT 0000
 TARGET = Segment _DATA 00000H
 FIXUPP Type = 32-bit Offset

 --- errorlevel 33


 Is somebody can help me?

 Thank's

 Pascal
Jun 15 2004
parent Pascal <Pascal_member pathlink.com> writes:
Hi,

I have a .def file but I had to add this line :
EXETYPE NT

I turn off the -NL option, and all is OK now

Thanks 

Pascal



In article <canegb$2s9j$1 digitaldaemon.com>, Walter says...
You'll need a module definition file
www.digitalmars.com/ctg/ctgDefFiles.html to create a DLL, because the linker
needs to be told that it is building a DLL. Also, you turned off the default
library search with -NL, which is why symbols like _strcpy are undefined,
since they are in the default library.


"Pascal" <Pascal_member pathlink.com> wrote in message
news:camsj6$1vot$1 digitaldaemon.com...
 Hi,

 I have a problem with the linker.

 Here is my commande line

 dmc.exe -DBUILD_DLL -D_WIN32 -mn -WD -NL kernel32.lib -NL newmath11dll.lib
 kinemodstd.cpp

 and here is the output :

 link
kinemodstd,,,C:\dm840c\dm\lib\kernel32+C:\dm840c\dm\lib\newmath11dll,kinemod std/noi;
 OPTLINK (R) for Win32  Release 7.50B1
 Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved

 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : nbmodel
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : namemodel
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelexp
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : imagemodel
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : stdmodeldiff
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelnbpar
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelparname
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelnbspar
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelsparname
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelequalin
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelsecpar
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelgradient
 OPTLINK : Error 180: No Match Found for Export/ENTRY -  : modelautostart
 kinemodstd.obj(kinemodstd)
 Error 42: Symbol Undefined __acrtused_dll
 kinemodstd.obj(kinemodstd)
 Error 42: Symbol Undefined __fltused
 kinemodstd.obj(kinemodstd)
 Error 42: Symbol Undefined _exp
 kinemodstd.obj(kinemodstd)
 Error 42: Symbol Undefined _log
 kinemodstd.obj(kinemodstd)
 Error 42: Symbol Undefined _pow
 kinemodstd.obj(kinemodstd)
 Error 42: Symbol Undefined _strcpy
 OPTLINK : Warning 174: 32-bit Segments Inappropriate for 16-bit Segmented
output
 OPTLINK : Error 81: Cannot EXPORT : nbmodel
 OPTLINK : Error 81: Cannot EXPORT : namemodel
 OPTLINK : Error 81: Cannot EXPORT : modelexp
 OPTLINK : Error 81: Cannot EXPORT : imagemodel
 OPTLINK : Error 81: Cannot EXPORT : stdmodeldiff
 OPTLINK : Error 81: Cannot EXPORT : modelnbpar
 OPTLINK : Error 81: Cannot EXPORT : modelparname
 OPTLINK : Error 81: Cannot EXPORT : modelnbspar
 OPTLINK : Error 81: Cannot EXPORT : modelsparname
 OPTLINK : Error 81: Cannot EXPORT : modelequalin
 OPTLINK : Error 81: Cannot EXPORT : modelsecpar
 OPTLINK : Error 81: Cannot EXPORT : modelgradient
 OPTLINK : Error 81: Cannot EXPORT : modelautostart
 kinemodstd.obj(kinemodstd)
 Error 35: Cannot Reach TARGET from FRAME at Relative 003E6H  from
 Segment _TEXT
 FRAME  = Frame of Group FLAT 0000
 TARGET = Segment _DATA 00000H
 FIXUPP Type = 32-bit Offset

 --- errorlevel 33


 Is somebody can help me?

 Thank's

 Pascal
Jun 16 2004