Connecting Tech Pros Worldwide Forums | Help | Site Map

HELP: assembly & C linking woes....

Andrew Wan
Guest
 
Posts: n/a
#1: Sep 27 '07
I am having problems linking an assembly object with my C object
files. Am getting:

Linker Warning: DOSSEG directive ignored in module asm.asm
Linker Error: Undefined symbol _ASMClsV in module main.c
Linker Error: Undefined symbol VADDR in module asm.asm

In my asm.asm file I've got:

DOSSEG
..MODEL huge
..386

..DATA
EXTRN vaddr : word;

..CODE
PUBLIC ASMClsV

ASMClsV PROC Near
;bla bla
ASMClsV EndP

In main.c I've got:

extern void ASMClsV();

Am trying to link using Borland C++ 4.5 since my source files are all
16-bit. I successfully linked the same asm.asm file with a 16-bit
pascal object using Turbo Pascal 7.0. Why can't I link using Borland C+
+ 4.5 to a 16-bit C file?

Also, I used Microsoft Macro Assembler 5. Should I use Turbo Assembler?


jacob navia
Guest
 
Posts: n/a
#2: Sep 27 '07

re: HELP: assembly & C linking woes....


Andrew Wan wrote:
Quote:
I am having problems linking an assembly object with my C object
files. Am getting:
>
Quote:
Linker Warning: DOSSEG directive ignored in module asm.asm
Linker Error: Undefined symbol _ASMClsV in module main.c
Linker Error: Undefined symbol VADDR in module asm.asm
>
MAYBE the problem is the missing underscores in the asm
program

Quote:
In my asm.asm file I've got:
>
DOSSEG
.MODEL huge
.386
>
.DATA
EXTRN vaddr : word;
EXTRN _vaddr : word;

add a leading underscore
Quote:
>
.CODE
PUBLIC ASMClsV
Shouldn't that be
PUBLIC _ASMClsV

with the leading _
Quote:
>
ASMClsV PROC Near
;bla bla
ASMClsV EndP
>
In main.c I've got:
>
extern void ASMClsV();
>
Am trying to link using Borland C++ 4.5 since my source files are all
16-bit. I successfully linked the same asm.asm file with a 16-bit
pascal object using Turbo Pascal 7.0. Why can't I link using Borland C+
+ 4.5 to a 16-bit C file?
>
Also, I used Microsoft Macro Assembler 5. Should I use Turbo Assembler?
>
Closed Thread


Similar C / C++ bytes