当前位置: 技术问答>linux和unix
汇编代码,用nasm编译,ld的时候报错defined in discarded section `_TEXT'
来源: 互联网 发布时间:2016-05-02
本文导语: 用的是redhat 9,NASM 0.98.35 相关的代码差不多是这样: section _DATA class=DATA public use16 algn=4 n1 db 0 n2 db 1 n3 dw 0 func_table ...
用的是redhat 9,NASM 0.98.35
相关的代码差不多是这样:
错误是:
`my_func' referenced in section `.data' of patterns/entry.o: defined in discarded section `_TEXT' of test.o
请高手帮忙看看。谢谢!
相关的代码差不多是这样:
section _DATA class=DATA public use16 algn=4
n1 db 0
n2 db 1
n3 dw 0
func_table dw func1
dw func2
dw func3
dw func4
section _TEXT class=CODE public use16 algn=4
global my_func
my_func:
......
错误是:
`my_func' referenced in section `.data' of patterns/entry.o: defined in discarded section `_TEXT' of test.o
请高手帮忙看看。谢谢!
|
1.test.asm里, 试下
global _my_func
_my_func:
2. 你的代码里有多份my_func定义吗? 比如在不同的文件里. 这里有类似的错误 http://lkml.org/lkml/2008/10/26/140
但也有人提到了升级GCC, binutils, http://forum.doom9.org/archive/index.php/t-124264.html
3. entry.c里func_table先别初始化, 在一个函数里显示的初始化试下?
如果你的代码很少, 可以全贴出来吗?
global _my_func
_my_func:
2. 你的代码里有多份my_func定义吗? 比如在不同的文件里. 这里有类似的错误 http://lkml.org/lkml/2008/10/26/140
但也有人提到了升级GCC, binutils, http://forum.doom9.org/archive/index.php/t-124264.html
3. entry.c里func_table先别初始化, 在一个函数里显示的初始化试下?
如果你的代码很少, 可以全贴出来吗?
|
你在entry.c里是怎么使用my_func的? 单从错误信息看,貌似entry.c里把my_func当成数据变量,而不是函数入口了
|
entry.o与test.o中my_func重定义 ??