I'm using ARM DS-5 for my current project. In my workspace, there are two projects: test and test_bsp. My purpose is that the "test_bsp" project includes header and source files, and the application project only needs to call the functions. In the project properties, I've included the paths of all the source and header files in the "test_bsp". However, when I'm trying to build the project, I've still got an error: L2618E: Undefined symbol (my function) (referred from main.o). Here is an example:
In project "test":
int main (void)
printTest(); //This is where the build errors L6218E undefined symbol are
In project "test_bsp":
Hello, I think the issue is simply that you did not declare delay_us() as 'extern' in the header file:
extern void delay_us(uint32_t us);
No, my problem is that I'm calling functions from another project, so that the compiler does not recognize it. Do you know how to do this in DS-5 Eclipse ??
The text of the question has changed from when I answered - I assume this was something you did, and not an error in the system?As for the error, strictly this is a linker error, not the compiler. Have you specified the path to the object (or library) from the other project? It would be typical to set the test_bsp project to build a library, and then simply add that to the link command line of the application project. You can use relative addressing to point to that liibrary within the workspace.
Yes, I did edit the text when I realize what my problem is. I've already included the path of the test_bsp in the "test" project, however, as I've mentioned, the errors still exist. Could you instruct me more clearly how to solve the linker error of the two projects ?
See the attached example, which you can File > Import into your workspace.
Build the library project, then add this library to the main project via the Project settings