T.R | Title | User | Personal Name | Date | Lines |
---|
3570.1 | CXXLINK/SYSEXE ? | CUJO::SAMPSON | | Tue May 13 1997 23:05 | 20 |
| Here's the way it generally has worked for me:
In the source code, e.g.:
#include "hwrpbdef.h"
#pragma extern_model save
#pragma extern_model relaxed_refdef
extern "C" HWRPB *BOO$GA_HWRPB;
#pragma extern_model restore
To compile, e.g.:
$ CXX alpha_console_info+sys$library:sys$lib_c.tlb/library
To link and resolve symbols from SYS$BASE_IMAGE.EXE, e.g.:
$ CXXLINK/SYSEXE alpha_console_info
HTH,
Bob Sampson
|
3570.2 | Had to verify that cxxlink wasn't turning it off | HNDYMN::MCCARTHY | A Quinn Martin Production | Wed May 14 1997 06:35 | 3 |
| Just an fyi - /NOSYSEXE is the default.
bjm
|
3570.3 | cxx-f-noincludefile error on cxxlink | CSC32::J_HENSON | Don't get even, get ahead! | Wed May 14 1997 10:20 | 16 |
| Linking with /sysexe has absolutely no bearing on this issue. It's not
one of the linker being unable to resolve external references. Rather,
it has to do with cxxlink needing to load nmadef.h for whatever
reason.
Another way to state it is the the cxxlink operation fails with the
following error.
%cxx-f-noincludefile,....
in reference to nmadef.h. If you change the cxxlink command in my
procedure to cxxlink/log, you will see even more detail.
Hope this clears things up.
Jerry
|
3570.4 | exit | CUJO::SAMPSON | | Wed May 14 1997 11:04 | 12 |
| In that case, I would try
#include "nmadef.h"
instead of
#include <nmadef.h>
then compile as suggested in .1.
I had thought you were trying to solve the general problem
of linking to resolve system symbols. Sorry.
|
3570.5 | no I have not tried it myself | HNDYMN::MCCARTHY | A Quinn Martin Production | Wed May 14 1997 11:08 | 13 |
| >>it has to do with cxxlink needing to load nmadef.h for whatever
>>reason.
It appears that one of the files generated for automatic template ins needs
to be compiled with the +sys$library qualifier.
The compiler generates the qualifiers used on the command line when the
original source is compiled. It looks like it does not include the use of "+"
on the command line.
You could try defining cxx$library_include to point at the tlb file.
bjm
|
3570.6 | yeah, but... | CSC32::J_HENSON | Don't get even, get ahead! | Thu May 15 1997 11:01 | 34 |
| >> <<< Note 3570.5 by HNDYMN::MCCARTHY "A Quinn Martin Production" >>>
>> -< no I have not tried it myself >-
>>It appears that one of the files generated for automatic template ins needs
>>to be compiled with the +sys$library qualifier.
>>The compiler generates the qualifiers used on the command line when the
>>original source is compiled. It looks like it does not include the use of "+"
>>on the command line.
>>You could try defining cxx$library_include to point at the tlb file.
I already know that defining cxx$library_include will resolve the problem.
My question is should the cxxlink command have a way to deal with this
similar to using the +sys$library:sys$lib_c/lib capability of the
cxx command.
Or, should the documentation be amended to reflect this situation.
Or, do we want to just not do anything and let customers struggle with
this on their own.
This is by no means a hot issue, but it is one that needs to be raised
and considered (imho, of course).
FWIW, I'll probably write a stars article on this the next chance I get,
so the csc will at least have something for customers to read. Before
writing the article, though, I would like to get a reading from engineering
as to whether or not this is considered worthy of consideration, or just
a minor inconvenience.
Thanks,
Jerry
|