This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi:
I am using CCS 5.5. Frist, I compile my own common.lib successfully. And then, I add this common.lib file into my project's include library file, and library search path.
Then, I compile project, it shows following errors.
unresolved symbol SEM_create, first referenced in C:\Users\yu5109\workspace_v5_5\...\CCS_PJT\Debug\common.lib<TI_platform.obj> C6678 C/C++ Problem
unresolved symbol LCK_pend, first referenced in C:\Users\yu5109\workspace_v5_5\...\CCS_PJT\Debug\common.lib<TI_platform.obj> C6678 C/C++ Problem
unresolved symbol LCK_post, first referenced in C:\Users\yu5109\workspace_v5_5\...\CCS_PJT\Debug\common.lib<TI_platform.obj> C6678 C/C++ Problem
unresolved symbol LCK_create, first referenced in C:\Users\yu5109\workspace_v5_5\...\Debug\common.lib<TI_platform.obj> C6678 C/C++ Problem
unresolved symbol LCK_delete, first referenced in C:\Users\yu5109\workspace_v5_5\...\CCS_PJT\Debug\common.lib<TI_platform.obj> C6678 C/C++ Problem
Can anyone tell me what should I do?
Thanks in advance.
Xining
Does your library common.lib define the symbols SEM_create and LCK_pend, or do you expect those symbols to come from another library? I suspect you need to add yet another library to your project.
Thanks for your replying.
SEM_create is defined in the BIOS' file sem.h. I had already include this file. Which library should I include?
Thank You.
Xining
You also need to link against the BIOS library. It is not sufficient to include the header file sem.h in your source code; you need to do both.
Xining,
Does your CCS_PJT project have a .tcf or a .cfg file? The reason is that the unresolved symbols belong to the DSP/BIOS or SYSBIOS component, therefore the project must have DSP/BIOS or SYSBIOS support enabled to properly define/include/use the missing symbols and include the appropriate libraries.
That said, I see a few details that may be relevant:
- If your library project has DSP/BIOS or SYSBIOS components, then your library project must have DSP/BIOS or SYSBIOS support enabled to properly include all the relevant code required (only including header files is not enough).
- You are using the C6678 device, is that so? If so, only SYSBIOS support is available (not DSP/BIOS), therefore your CCS_PJT must have a .cfg file to properly link the libraries and therefore resolve all the symbols
- You are using the legacy APIs (the ones originally designed by DSP/BIOS but are still supported by SYSBIOS). However, some releases seem to have this support disabled - therefore you may have hit this problem as well.
For additional details on all the intricacies of creating and porting the projects to newer releases of SYSBIOS you will have much more knowledgeable responses from the experts at the TI-RTOS forum.
Hope this helps,
Rafael
Thanks desouza!
But I have one question about the link you give about DSP/BIOS statistic library. http://e2e.ti.com/support/embedded/tirtos/f/355/t/246096.aspx
In it, it said that "The .tcf file is only needed for the end application which consumes the DSP/BIOS libs." As for my SYS/BIOS, I already contain *.cfg file, does that mean I do not need to reference other BIOS libs?
Thank You
Xining
Xining,
What I understand from the sentence is that all static objects defined in the .cfg file of the .lib object do not influence the library object code. I did some tests and verified this seems to be the case. (edit: I attached the projects)
In other words, if your library project is based on statically created objects, these must be present in the .cfg file of the main application that uses the library.
Regards,
Rafael