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.

CCS v5 linking error

Hi,

I am trying to link qmss_drv.c (to do some debugging) in my project. On building the project it gives the following error:

error: symbol "qmssGObj" redefined: first defined in "./qmss_drv.obj";
redefined in
"D:\TICCS\pdk_C6670_1_0_0_19\packages\ti\drv\qmss\lib\ti.drv.qmss.ae66<qmss_
drv.oe66>"
error: symbol "qmssLObj" redefined: first defined in "./qmss_drv.obj";
redefined in
"D:\TICCS\pdk_C6670_1_0_0_19\packages\ti\drv\qmss\lib\ti.drv.qmss.ae66<qmss_
drv.oe66>"

I also tried linking the same file to another project that is using the qmss library and it builds fine.

In both the cases the linker command that is generated is also the same. 

Could someone please let me know if there is some other setting that I need to do so that the project builds.

Thanks,
Saurabh 

  • I can describe what is happening.  I presume symbols in the diagnostics all belong to global structures, even though they could be some other data object, or even functions.  One of these structures has a name not shown.  I call it "idontknow".  The global structure idontknow is defined in the file qmss_drv.oe66 of the library ti.drv.qmss.ae66.  Specifically, it is defined within some section from that file.  I don't know the name of that section, but it is a good guess that it is .const.  This .const section also defines the symbols qmssGObj and qmssLObj.  Somewhere in the main code you supply there is a reference to the symbol idontknow.  Because of that reference, the linker adds the .const section from qmss_drv.oe66 to the system.  And thus the symbols qmssGobj and qmssLobj are also added to the system.  Elsewhere in your code you supply definitions of the symbols qmssGObj and qmssLObj.   Now you have conflicting definitions of qmssGObj and qmssLObj.  

    All that said, it seems likely this is all happening because you are using this library, or perhaps configuring your build, incorrectly.  I recommend you consult the documentation that comes with this PDK package.

    Thanks and regards,

    -George