本文共 764 字,大约阅读时间需要 2 分钟。
导读: 我用汇编1.asm: extrn _o:near data segment data ends code segment main proc far assume cs:code,ds:data start: push ds sub ax,ax push ax mov ax,data mov ds,ax call _o ret main endp code ends end start 调用o.c: #include o() { printf("aaa"); } extern void main(); 两个文件分别编译为obj文件: tcc -c -Iz:/tc/include o.c masm 1 然后连接 tlink 1.obj o.obj 总会报错“Undefined symbol '_PRINTF' in module O.C 为何?如何解决阿? 文件改为: 1.asm: extrn _o:near public _main data segment data ends code segment _main proc far assume cs:code,ds:data start: push ds sub ax,ax push ax mov ax,data mov ds,ax call _o ret _main endp code ends end start o.c: #include "stdarg.h" #include "stdio.h" o() { printf("%s","aaaaa"); } extern void main(); 拷贝stdarg.h、stdio.h拷到tc根目录下,masm、tcc也在这个目录 编译通过 但是一执行生成的exe,dos就死机了 本文转自转载地址:http://twiob.baihongyu.com/