I am creating a program in assembler, using several modules. The Assembler manual states that using the EXPORT directive, without any arguments, exports all symbols from the module. When I use this construct, I get flooded with undefined symbol errors. I have to go back and individually export each symbol in order to get a clean assembly and link. Is this an artifact of using an evaluation license, or is something screwy going on. I tried EXPORT * and it really yelled at me. Having to individually export all of the variable names and equates would be a major hurt. Thanks.
The module that I was trying to export everything from was the one where I defined all of my RAM variables and the program equates.
Even having such a "module" is bad news already, because that really isn't a module.
The vast majority of those RAM variables almost certainly belong to other modules, and should be in those modules, not in a single big "all things that go into RAM" module. And a good portion probably doesn't have to be exported at all, once they're in the right module, because they'll only be used from inside that module. That's a big part of what modularization is about: making a clear distinction between things that belong together and things that don't, thus having a lot fewer things out in public.
I assume that it is the linker that is screwing up.
To put none too fine a point on it: no, you are. The linker is doing exactly what you told it (and the assembler) to do. You screwed by telling the assembler the wrong things to do.
And FWIW: being this quick at blaming at their tools isn't exactly a promising sign in new programmers.
I have a number of work-arounds, but I was curious if anyone else had run into the same situation.
Most people know better than to run themselves into that situation in the first place.