我在遍历时把符合未定义符号判定的存到一个表里,然后在我的强弱符号绑定之后再进行判定,如果表不为空,就返回 NO_DEF。
但只要加上这个判定,test45 就不能通过。去了这个判定 45 能通过,test2 不能通过,好奇怪,老师或者同学可不可以帮忙解答一下
test 4 5 能正常过说明你的合并逻辑没问题,而是判断强弱符号的部分有问题。你可以结合具体源文件里的情况分析预期输出是什么:比如 test 4 是一个强符号和一个弱符号,这个时候只有一个强定义,所以是对的;test 5 有多个弱符号,也是符合定义的,所以也是对的。
但 test 2 中对 foo
的没有任何一个强定义或弱定义,所以它应当报 undefined reference。你是否是对弱定义的判断有误?
2 Likes