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 having problems the new compiler for TMS320C28x.
I am using CCS5.5, Device TMS320F28335, Programming Language C++.
Previously I was using Compiler V6.1.5 which is working fine without problems with my source code.
Recently I downloaded the V6.2.3, when I compile the same source code with new one I get following linker error
undefined first referenced
symbol in file
--------- ----------------
___T_10CPwm3Phase ./Source/PwmB6.obj
___T_13COutputBuffer ./Source/Shared/MAX3420.obj
___T_15CCommandHandler ./Source/Shared/MAX3420.obj
___T_4CSpi ./Source/Shared/MAX3420.obj
error #10234-D: unresolved symbols remain
error #10010: errors encountered during linking; "CO3636-3B_Debug.out" not
built
>> Compilation failure
gmake: *** [CO3636-3B_Debug.out] Error 1
gmake: Target `all' not remade because of errors.
I used following Compiler options:
-v28 -ml -mt --float_support=fpu32 --include_path="C:/Program Files/Texas Instruments/C2000 Code Generation Tools 6.2.3/include" --include_path="C:/workspace_v5_5/CO3636-3B/Header" --include_path="C:/workspace_v5_5/CO3636-3B/Header/fonts" --include_path="C:/Projects/TMS320/Include" -g --define=TARGET_F28335 --define=ASSERT_CAN_BREAK --define=LARGE_MODEL --define=_DEBUG --diag_warning=225 --display_error_number --diag_suppress=10063 --diag_suppress=16002 --gen_func_subsections=on
I used following Linker options:
-v28 -ml -mt --float_support=fpu32 -g --define=TARGET_F28335 --define=ASSERT_CAN_BREAK --define=LARGE_MODEL --define=_DEBUG --diag_warning=225 --display_error_number --diag_suppress=10063 --diag_suppress=16002 --gen_func_subsections=on -z -m"CO3636-3B_Debug.map" --heap_size=0x60000 --stack_size=0x380 --warn_sections -i"C:/Program Files/Texas Instruments/C2000 Code Generation Tools 6.2.3/lib" -i"C:/Program Files/Texas Instruments/C2000 Code Generation Tools 6.2.3/include" -i"C:/Projects/TMS320/Lib" --reread_libs --priority --display_error_number --xml_link_info="CO3636-3B_Debug_linkInfo.xml" --entry_point=code_start --ram_model
So I downloaded and tried the other compiler versions V6.2.0 & V6.2.1 but the same story, after that I tried again the old compiler V6.1.5 and it works with V6.1.5 and all older compiler versions.
I checked all the compiler and linker options, compiler and linker paths for libraries, took a look at Linker command files, map file, but couldn't find anything.
I noticed that this error occurs for drived classes for who the base class resides in pre-compiled library, but strangely this error is not appearing with all drived classes, and the code still compiles without errors with Compiler version V6.1.5 and earlier.
I also tried the same, with source code of other projects (based on same device), got the same result (compiles with V6.1.5 and earlier, don't compile with V6.2.x).
Can anyone help me please.
Ishwar
undefined first referenced
symbol in file
--------- ----------------
___T_10CPwm3Phase ./Source/PwmB6.obj
___T_13COutputBuffer ./Source/Shared/MAX3420.obj
___T_15CCommandHandler ./Source/Shared/MAX3420.obj
___T_4CSpi ./Source/Shared/MAX3420.obj
Are these 4 objects the derived classes? Or are they the base classes from which the derived classes inherit?
Their names indicate that they are symbols related to runtime type information for some named types. If the type names seen here are the base types, then the pre-compiled libraries are not defining typeinfo that the new compiler indicates that it needs.
Hi, James
Thanks for the hint, everything fine everything works now, problem solved.
The pre-compiled library 'which I was using' was compiled with Compiler V6.1.3 and the new Compiler/Linker V6.2.x was not recognizing the symbols properly. I re-compiled my library with new compiler V6.2.0 and now everything is fine.
I compiled my code with Compiler V6.2.3 it works.
Once again thanks for help.
Here is the information that you asked me:
PWMB6.obj contains a class CPwmB6 which is derived from CPwm3Phase class which resides in my Library.
MAX340.obj contains a class CUsbOutputBuffer which is derived from COutputBuffer class which resides in my Library.
MAX340.obj contains a class CCommandHandlerUsb which is derived from CCommandHandler class which resides in my Library.
MAX340.obj contains a class CMAX3420 which is derived from CSpi class which resides in my Library.
Regards
Ishwar