| TIP: Click on subject to list as thread! | ANSI |
| echo: | |
|---|---|
| to: | |
| from: | |
| date: | |
| subject: | PM programs with Watc |
Jeffrey White wrote in a message to MIKE BILOW:
JW> Mike I'm starting to use Watcom C++ for OS/2 - now I
JW> understand that other compilers use a .def file and that
JW> Watcom uses a linker file - could you please show us how
JW> you use Watcom ( I believe you use .def file for other
JW> compilers and use a "make file" to read and write a Watcom
JW> linker file out of the .def file) ? In other words should I
JW> always write a .def file (all book examples have a .def
JW> file) so that when I compile under another compiler
JW> .........
All of the things that the more common linkers handle with the DEF file are
handled instead from the command line with WLINK, the Watcom Linker. The
WLINK command line can, however, be supplied from a control file, specified
on the command line with the "{at}" directive. In some cases,
especially if you don't use C++ name mangling, it is possible to use
LINK386 with Watcom OBJ files. Watcom also provides a tool, MS2WLINK,
which somewhat mostly converts DEF files into WLINK command scripts. Here
is the syntax used by WLINK, a bizarre and non-standard world unto itself:
Copyright by WATCOM International Corp. 1985, 1994. All rights reserved.
WATCOM is a trademark of WATCOM International Corp.
usage: wlink {directive}
commands valid for all executable formats:
directive ::= "File" obj_spec{","obj_spec}
| "Name" exe_file
| "OPtion" option{","option}
| "Library" library_file{","library_file}
| "Path" path_name{";"path_name}
| "LIBPath" path_name{";"path_name}
| "LIBFile" obj_file{","obj_file}
| "Debug" "Watcom" dblist |
"Codeview" | "Dwarf" | "All"
| "MODTrace" module_name{","module_name}
| "SYMTrace" symbol_name{","symbol_name}
| "SYStem" system_name
| "SYStem Begin" system_name directive {directive}
"End"
| "FORMat" form
| "Alias"
alias"="symbol_name{","alias"="symbol_name}
| "REFerence" symbol_name{","symbol_name}
| "{at}" directive_file
| "#" comment
commands valid for all executable formats (continued):
| "DISAble" msg_num{","msg_num}
| "SOrt" ["GLobal"]
["ALPhabetical"]
| "LANGuage" ("JApanese" |
"CHinese" | "KOrean")
obj_spec ::= obj_file["("obj_member")"] |
library_file["("lib_member")"]
dblist ::= [dboption{","dboption}]
dboption ::= "LInes" | "Types" | "LOcals" |
"All" | "STatic"
option ::= "Map"["="map_file] |
"NODefaultlibs" | "STack="n | "Dosseg"
| "Verbose" | "OSName="string |
"Caseexact" | "NAMELen="n | "Quiet"
| "SYMFile"["="symbol_file] |
"Undefsok" | "STRip" | "MAXErrors="n
| "NOCASEexact" | "CAChe" |
"NOCAChe" | "MANGlednames" | "STATics"
| "ARTificial" | "REDefsok" | "NOREDefsok"
commands valid for the MS-DOS executable format only:
form ::= "Dos" ["COM"]
directive ::= "Begin" ovl_sect {ovl_sect} "End"
| "OVerlay" class{","class}
| "NEWsegment"
| "FIXedlib" library_file{","library_file}
| "VEctor" symbol_name{","symbol_name}
| "NOVector" symbol_name{","symbol_name}
| "FORCEVEctor" symbol_name{","symbol_name}
option ::= "SMall" | "PACKCode="n |
"DIStribute" | "DYNamic" | "ARea="n
| "NOIndirect" | "STANdard" |
"PADSections" | "PACKData="n
ovl_sect ::= ("Section" | "AUTOSection")
["INto" overlay_file] {directive}
commands valid for the OS/2 and Rational Systems executable formats only:
form ::= "OS2"
["FLat"|"LE"|"LX"] ["PHYSdevice" |
"VIRTdevice"
|
["DLl"["INITGlobal"|"INITInstance"
["TERMInstance"|"TERMGlobal"]]
| "PM" | "PMCompatible" | "FULLscreen"]
directive ::= "NEWsegment"
| "SEGment" segdesc{","segdesc}
| "IMPort" import{","import}
| "EXPort" export{","export}
| "EXPort" "="wlib_directive_file
segdesc ::= segspec segmodel {segmodel}
segspec ::= seg_name | "Class" class_name | "TYpe"
("CODE" | "DATA")
import ::= entryname module["."(extname | ordinal)]
option ::= "Alignment="n | "OLDlibrary="dll_name |
"VERSion="major.[minor]
| "DEscription" description |
"MODName="module_name | "Heapsize="n
| ("ONEautodata" | "MANYautodata" |
"NOAutodata") | "PACKCode="n
| "OFFset="n | "OLDlibrary="dll_name |
"NEWFiles" | "PROTmode"
| "STUB="stub_name | "PACKData="n
export ::=
entryname["."ordinal]["="internal]["Resident"][iopl_words]
segmodel ::= ("PReload" | "LOadoncall") |
("SHared" | "NONShared")
| ("EXECUTEOnly" | "EXECUTERead" |
"READOnly" | "READWrite")
| ("Iopl" | "NOIopl") |
("CONforming" | "NONConforming")
| ("PERManent" | "NONPERManent") |
"INValid" | "RESident"
| "CONTiguous" | "DYNamic"
commands valid for the Microsoft Windows executable formats only:
form ::= "WIndows" ["DLl"["INITGlobal" |
"INITInstance"]] [MEMory] [FOnt]
directive ::= "NEWsegment"
| "SEGment" segdesc{","segdesc}
| "IMPort" import{","import}
| "EXPort" export{","export}
| "EXPort" "="wlib_directive_file
segdesc ::= segspec segmodel {segmodel}
segspec ::= seg_name | "Class" class_name | "TYpe"
("CODE" | "DATA")
import ::= entryname module["."(extname | ordinal)]
option ::= "Alignment="n | "OLDlibrary="dll_name |
"VERSion="major.[minor]
| "DEscription" description |
"MODName="module_name | "Heapsize="n
| ("ONEautodata" | "MANYautodata" |
"NOAutodata") | "RWReloccheck"
| "PACKCode="n | "PACKData="n |
"OLDlibrary="dll_name
| "STUB="stub_name
export ::=
entryname["."ordinal]["="internal]["Resident"]
segmodel ::= ("PReload" | "LOadoncall") |
("SHared" | "NONShared")
| ("EXECUTEOnly" | "EXECUTERead" |
"READOnly" | "READWrite")
| ("MOVeable" | "FIXed") | "DIScardable"
commands valid for the Microsoft Windows NT executable formats only:
form ::= "WIndows NT" ["TNT"]
|
["DLl"["INITGlobal"|"INITInstance"
["TERMInstance"|"TERMGlobal"]]
directive ::= "RUntime" runoption
| "SEGment" segdesc{","segdesc}
| "IMPort" import{","import}
| "EXPort" export{","export}
| "EXPort" "="wlib_directive_file
| "COMmit" commitopt{","commitopt}
segdesc ::= segspec segmodel {segmodel}
segspec ::= seg_name | "Class" class_name | "TYpe"
("CODE" | "DATA")
import ::= entryname module["."(extname | ordinal)]
option ::= "Alignment="n | "OLDlibrary="dll_name |
"VERSion="major.[minor]
| "DEscription" description |
"MODName="module_name | "Heapsize="n
| "OBJAlign="size | "OLDlibrary="dll_name |
"STUB="stub_name
export ::=
entryname["."ordinal]["="internal]["Resident"]
segmodel ::= ("SHared" | "NONShared") |
("PAGEable" | "NONPageable")
runoption ::= ("NATive" | "WINdows" |
"CONsole" | "POSix" | "OS2" |
"DOSstyle")
commitopt ::= "STack="n | "Heap="n
commands valid for the Phar Lap executable formats only:
form ::= "PHARlap" ["EXTended" | "REX"]
directive ::= "RUntime" runoption{","runoption}
option ::= "MINData="n | "MAXData="n |
"OFFset="n | "STUB="stub_name
runoption ::= "MINReal="n | "MAXReal="n |
"CALLBufs="n | "MINIBuf="n
| "MAXIBuf="n | "NISTack="n |
"ISTKsize="n | "PRIVileged"
| "REALBreak="(n | symbol_name ) | "UNPRIVileged"
commands valid for the Novell Netware executable format only:
form ::= "NOVell" ["NLM" | "LAN" |
"DSK" | "NAM"] description
directive ::= "MODUle" module_name{","module_name}
| "IMPort" import{","import}
| "EXPort" export{","export}
| "Debug" "Novell"
["ONLyexports"] ["REFerenced"]
option ::= "SCReenname" description |
"CHeck="symbol_name | "MULTILoad"
| "REentrant" | "CUSTom="file_name |
"START="symbol_name
| "SYnchronize" | "EXit="symbol_name |
"THReadname" name
| "PSeudopreemption" |
"VERsion="major[.minor[.revision]]
| "MESsages="file_name | "HElp="file_name |
"XDCdata="file_name
| "COPYRight" [string] | "SHArelib="file_name
import ::= entryname
export ::= entryname
commands valid for the QNX executable format only:
form ::= "QNX" ["Flat"]
directive ::= "SEGment" segdesc{","segdesc}
| "NEWsegment"
option ::= "NORelocs" | "LOnglived" |
"Heapsize="n | "PACKCode="n
| "PRIVilege"=n |
"RESource"("="res_file_name | string)
| "LInearrelocs" | "OFFset="n |
"PACKData="n
segdesc ::= segspec segmodel {segmodel}
segspec ::= seg_name | "Class" class_name | "TYpe"
("CODE" | "DATA")
segmodel ::= "EXECUTEOnly" | "EXECUTERead" |
"READOnly" | "READWrite"
commands valid for the ELF executable format only:
form ::= "ELF" ["Dll"]
directive ::= "MODUle" module_name{","module_name}
| "IMPort" import{","import}
| "EXPort" export{","export}
option ::= "Alignment="n
import ::= entryname
export ::= entryname
-- Mike
---
* Origin: N1BEE BBS +1 401 944 8498 V.34/V.FC/V.32bis/HST16.8 (1:323/107)SEEN-BY: 50/99 270/101 620/243 711/401 409 410 413 430 808 809 934 955 SEEN-BY: 712/407 515 517 628 713/888 800/1 7877/2809 @PATH: 323/107 170/400 396/1 270/101 712/515 711/808 809 934 |
|
| SOURCE: echomail via fidonet.ozzmosis.com | |
Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.