首页
社区
课程
招聘
[求助]链接器LD在windows上工作不正常,不识别符号
发表于: 2018-5-6 12:29 2870

[求助]链接器LD在windows上工作不正常,不识别符号

2018-5-6 12:29
2870
错误如下:
c.o:c.c:(.text+0x33): undefined reference to `asm_print'
asm.o:(.code+0x6): undefined reference to `c_print'

两个文件的源码如下:
asm文件
;这里是汇编代码

extern c_print

section .data

str: db "abcde"

section .code

;先调用C语言的打印函数

pushstr

call c_print


c文件
extern void  asm_print(char*,int);

voidc_print(char* str){

int length=0;

while(str[length++]);

asm_print(str,length);

}


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 10
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
原来是GCC处理.c文件时,生成的不是elf文件,求指教如何生成elf文件
2018-5-6 12:42
0
雪    币: 10
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
目前ld针对elf格式的文件也是无能为力,结果是PE文件
2018-5-6 16:01
0
雪    币: 5734
活跃值: (1737)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
没用过gcc    不过在msvc里  32位环境下  extern  声明需要用下划线开头  _c_print
2018-5-7 00:37
0
雪    币: 10
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
小艾 没用过gcc 不过在msvc里 32位环境下 extern 声明需要用下划线开头 _c_print
不是编译器的问题,而是链接器ld。ld处理elf格式的目标文件时,生成的依然是PE格式的可执行文件,我是想生成elf格式的可执行文件
2018-5-7 11:07
0
游客
登录 | 注册 方可回帖
返回
//