From: SMTP%"lionel@quark.enet.dec.com" 8-SEP-1994 11:55:50.13 To: EVERHART CC: Subj: Re: Need help to build a shareable EXE From: lionel@quark.enet.dec.com (Steve Lionel) X-Newsgroups: comp.os.vms Subject: Re: Need help to build a shareable EXE Date: 8 Sep 1994 15:12:02 GMT Organization: Digital Equipment Corporation, Nashua NH Lines: 43 Distribution: world Message-ID: <34n9k2$65f@jac.zko.dec.com> Reply-To: lionel@quark.enet.dec.com (Steve Lionel) NNTP-Posting-Host: quark.zko.dec.com X-Newsreader: mxrn 6.18-21 To: Info-VAX@Mvb.Saic.Com X-Gateway-Source-Info: USENET In article <34n311$lio@adam.cc.sunysb.edu>, jlauret@sbchem.sunysb.edu (Jerome LAURET) writes: |> |>-- |> I try to build a SHAREABLE EXE of my own and fail to do it. Any hints |>will be welcomed. I guess I miss something. |> |> Here is what I did. |> I have an XXX.OLB and what I did is |> |> LINK/SHARE=XXX.EXE XXX.OLB/LIB/INCLUDE=(module1,module2,...) |> |>and it did create an EXE. The anal/image tells me "image type: shareable " but |>there is no "Symbol:" defined in it. Meaning if now I link my program with this |>"share" exe (link myprog,sys$input:/opt + XXX/SHARE), none of the reference to |>module1,module2 are solved (undefined symbol) which is at least consistent |>with the information given by anal/image. |> I also tried |> LIB/OBJ/EXTRACT=(*) XXX.OLB and link the created XXX.OBJ and that did |>not work as well. |> Note that a LINK myprog,XXX.OLB/LIB works . |> |> So, what am I missing here ? You're missing a transfer vector (on VAX) or symbol vector (AXP). See chapter 4 of the Linker manual for the details. If you are on VAX and have a V5.x document set, see also the "Guide to Creating Modular Procedures". If you're on VAX and you want a quick-and-dirty method, use a linker options file that has lines such as the following: UNIVERSAL=routine1,routine2,routine3,.... On AXP, it's easier - the following is an example: $ LINK/SHAREABLE MY_MATH, SYS$INPUT/OPT GSMATCH=lequal,1,1000 SYMBOL_VECTOR=(myadd=PROCEDURE,- mysub=PROCEDURE,- mymul=PROCEDURE,- mydiv=PROCEDURE,- my_symbol=DATA,- my_data=PSECT)