This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Error L128 Symbol not found

Hi floks

When the linker error L128 happens, REFERENCE MADE TO UNRESOLVED EXTERNAL the name is listed under the message.
But a double click won't jump to the line in the source file where the missing name was found.

And it's not possible to start a search with the listed name without handwork.

Is there a trick to jump to the wrong source file possion?

Günter

Parents
  • When the linker error L128 happens,

    ...

    But a double click won't jump to the line in the source file where

    I would guess that this is because linkers "don't do" source files. That is the job of a compiler or assembler - turning source files into object files.

    Linkers work with object files, and they have little to no way of knowing how the object file was generated, and therefore usually can't give "source file line numbers" of the problem they found.

Reply
  • When the linker error L128 happens,

    ...

    But a double click won't jump to the line in the source file where

    I would guess that this is because linkers "don't do" source files. That is the job of a compiler or assembler - turning source files into object files.

    Linkers work with object files, and they have little to no way of knowing how the object file was generated, and therefore usually can't give "source file line numbers" of the problem they found.

Children
  • It is true that the Linker knows nothing about the source files.

    However, the point of an IDE is that it should be able to take an overview (hence "Integrated") of the entire project, and access all the components of the toolchain (hence, again, "Integrated") to solve such problems.

    So there's obviously an opportunity here for Keil to enhance the integration provided by uVision to solve this problem:

    At its simplest, just provide a "search for this symbol in the project sources" facility;

    More involved might be to have uVision determine the location of the source line from the Debug information, if that is possible.

  • I would guess that this is because linkers "don't do" source files.

    But they still do debug information --- at least enough of it to be able to combine the debug info from all those object files and libraries, and write debug info for the generated absolute object module. So the linker could do it if it wanted to (read: if Keil invested the effort to implement this feature).

    It's not at all unusual for linkers to be able to pin-point which source line contained the reference that turned out to be unfulfillable.