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.

Passing pointers to functions in static libraries



Hello all,

We are in the middle of modularization of our code base. We are currently moving code into static libraries and have encountered some issues calling functions when passing pointers to them. We are using Code Composer v4/C2000 with  TMS320F28x DSP family. Below are some examples with the errors generated by Code Composer. It seems like it should be a simple matter but we are stuck and was hoping someone could shed some light on this. Is this a compiler or IDE issue?  Is it memory related? Or are we doing the calls wrong that the compiler (C2000) does not like? As always, it's an urgent issue :) Any help on this would be greatly appreciated.

Thanks in advance.


Case 1:

.c file

Uint16 *spiParams[2];

spiParams[0] = (Uint16 *) LO_SPEED_CLOCK;

spiParams[1] = (Uint16 *) EXTERNAL_AD_SPI_BAUD_RATE;

spi_init((Uint16 *) &spiParams); << call fails

 

Case 2:

.h file

typedef struct _HVFE_SEMAPHORE {

       HVFE_SEMAPHORE_OP    eSemOp;

       Uint16               uSemCount;

} HVFE_SEMAPHORE;

extern HVFE_SEMAPHORE g_spiSemaphore;

 

.c file

HVFE_SEMAPHORE g_spiSemaphore;

semaphore_ioctl((Uint16 *) &g_spiSemaphore); << call fails

 

ERROR:

symbol "__ftable" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027836        16707

symbol "__ftable" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027841        16740

symbol "__ftable" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./General/GenericFunctions.obj"              HVFE_NEXT_GEN      line 0   1332255027854        16792

symbol "__tmpnams" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027837        16716

symbol "__tmpnams" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027843        16749

symbol "__tmpnams" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./General/GenericFunctions.obj"              HVFE_NEXT_GEN      line 0   1332255027857        16801

symbol "_Can_Config" redefined: first defined in "./Components/ADC/Adc.obj"; redefined in "./Components/CAN/Can_PBcfg.obj"                   HVFE_NEXT_GEN      line 0   1332255027852        16786

symbol "_CanIf_Config" redefined: first defined in "./Components/ADC/Adc.obj"; redefined in "./Components/CAN/CanIf_PBcfg.obj"                 HVFE_NEXT_GEN      line 0   1332255027852        16787

symbol "_Com_IPDUInfoRx" redefined: first defined in "./Components/ADC/Adc.obj"; redefined in "./Components/CAN/Com_Data.obj"                   HVFE_NEXT_GEN      line 0   1332255027850        16777

symbol "_Com_IPDUInfoTx" redefined: first defined in "./Components/ADC/Adc.obj"; redefined in "./Components/CAN/Com_Data.obj"                   HVFE_NEXT_GEN      line 0   1332255027848        16771

symbol "_Com_IPDUStatusRx" redefined: first defined in "./Components/ADC/Adc.obj"; redefined in "./Components/CAN/Com_Data.obj"                   HVFE_NEXT_GEN      line 0   1332255027848        16772

symbol "_Com_IPDUStatusTx" redefined: first defined in "./Components/ADC/Adc.obj"; redefined in "./Components/CAN/Com_Data.obj"                   HVFE_NEXT_GEN      line 0   1332255027852        16784

symbol "_Com_RxIPDU_HVFE_BMCM_ActuatorReq" redefined: first defined in "./Components/ADC/Adc.obj"; redefined in "./Components/CAN/Com_Data.obj"            HVFE_NEXT_GEN      line 0   1332255027851          16783

symbol "_Com_RxIPDU_HVFE_BMCM_HVFE_SOH" redefined: first defined in "./Components/ADC/Adc.obj"; redefined in "./Components/CAN/Com_Data.obj"            HVFE_NEXT_GEN      line 0   1332255027849          16775

symbol "_Com_RxIPDU_HVFE_DIAG_TECAN_ALLNODE" redefined: first defined in "./Components/ADC/Adc.obj"; redefined in "./Components/CAN/Com_Data.obj"            HVFE_NEXT_GEN      line 0   1332255027849          16773

symbol "_Com_RxIPDU_HVFE_mUSDReqToHVFE" redefined: first defined in "./Components/ADC/Adc.obj"; redefined in "./Components/CAN/Com_Data.obj"            HVFE_NEXT_GEN      line 0   1332255027852          16785

symbol "_Com_TxIPDU_HVFE_HVFE_BMCM_SOH" redefined: first defined in "./Components/ADC/Adc.obj"; redefined in "./Components/CAN/Com_Data.obj"            HVFE_NEXT_GEN      line 0   1332255027849          16774

symbol "_Com_TxIPDU_HVFE_HVFE_Current" redefined: first defined in "./Components/ADC/Adc.obj"; redefined in "./Components/CAN/Com_Data.obj"            HVFE_NEXT_GEN      line 0   1332255027850          16780

symbol "_Com_TxIPDU_HVFE_HVFE_Isolation" redefined: first defined in "./Components/ADC/Adc.obj"; redefined in "./Components/CAN/Com_Data.obj"            HVFE_NEXT_GEN      line 0   1332255027851          16781

symbol "_Com_TxIPDU_HVFE_HVFE_Status" redefined: first defined in "./Components/ADC/Adc.obj"; redefined in "./Components/CAN/Com_Data.obj"                HVFE_NEXT_GEN      line 0   1332255027848        16770

symbol "_Com_TxIPDU_HVFE_HVFE_Temps_A" redefined: first defined in "./Components/ADC/Adc.obj"; redefined in "./Components/CAN/Com_Data.obj"            HVFE_NEXT_GEN      line 0   1332255027850          16778

symbol "_Com_TxIPDU_HVFE_HVFE_Temps_B" redefined: first defined in "./Components/ADC/Adc.obj"; redefined in "./Components/CAN/Com_Data.obj"            HVFE_NEXT_GEN      line 0   1332255027850          16779

symbol "_Com_TxIPDU_HVFE_HVFE_Temps_PCB" redefined: first defined in "./Components/ADC/Adc.obj"; redefined in "./Components/CAN/Com_Data.obj"            HVFE_NEXT_GEN      line 0   1332255027849          16776

symbol "_Com_TxIPDU_HVFE_HVFE_Voltage" redefined: first defined in "./Components/ADC/Adc.obj"; redefined in "./Components/CAN/Com_Data.obj"            HVFE_NEXT_GEN      line 0   1332255027847          16769

symbol "_Com_TxIPDU_HVFE_mUSDResfroHVFE" redefined: first defined in "./Components/ADC/Adc.obj"; redefined in "./Components/CAN/Com_Data.obj"            HVFE_NEXT_GEN      line 0   1332255027851          16782

symbol "_crcTable" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027836        16710

symbol "_crcTable" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027842        16743

symbol "_crcTable" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./General/GenericFunctions.obj"              HVFE_NEXT_GEN      line 0   1332255027855        16795

symbol "_g_spiSemaphore" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027839        16727

symbol "_g_spiSemaphore" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027845        16759

symbol "_gpaClearBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027835        16703

symbol "_gpaClearBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027840        16736

symbol "_gpaClearBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./General/GenericFunctions.obj"              HVFE_NEXT_GEN      line 0   1332255027853        16788

symbol "_gpaCtrlBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027838        16721

symbol "_gpaCtrlBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027844        16754

symbol "_gpaDatBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027837        16712

symbol "_gpaDatBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027842        16745

symbol "_gpaDatBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./General/GenericFunctions.obj"              HVFE_NEXT_GEN      line 0   1332255027856        16797

symbol "_gpaDirBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027839        16728

symbol "_gpaDirBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027845        16761

symbol "_gpaMux1BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027840        16735

symbol "_gpaMux1BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027847        16768

symbol "_gpaMux2BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027837        16719

symbol "_gpaMux2BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027843        16752

symbol "_gpaPudBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027840        16733

symbol "_gpaPudBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027847        16766

symbol "_gpaQsel1BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027838        16724

symbol "_gpaQsel1BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027845        16757

symbol "_gpaQsel2BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027836        16706

symbol "_gpaQsel2BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027841        16739

symbol "_gpaQsel2BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./General/GenericFunctions.obj"              HVFE_NEXT_GEN      line 0   1332255027854        16791

symbol "_gpaSetBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027836        16705

symbol "_gpaSetBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027841        16738

symbol "_gpaSetBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./General/GenericFunctions.obj"              HVFE_NEXT_GEN      line 0   1332255027853        16790

symbol "_gpbClearBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027839        16731

symbol "_gpbClearBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027846        16764

symbol "_gpbCtrlBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027839        16730

symbol "_gpbCtrlBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027846        16763

symbol "_gpbDatBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027838        16723

symbol "_gpbDatBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027844        16756

symbol "_gpbDirBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027836        16709

symbol "_gpbDirBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027841        16742

symbol "_gpbDirBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./General/GenericFunctions.obj"              HVFE_NEXT_GEN      line 0   1332255027855        16794

symbol "_gpbMux1BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027837        16714

symbol "_gpbMux1BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027842        16747

symbol "_gpbMux1BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./General/GenericFunctions.obj"              HVFE_NEXT_GEN      line 0   1332255027856        16799

symbol "_gpbMux2BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027839        16729

symbol "_gpbMux2BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027846        16762

symbol "_gpbPudBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027837        16715

symbol "_gpbPudBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027843        16748

symbol "_gpbPudBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./General/GenericFunctions.obj"              HVFE_NEXT_GEN      line 0   1332255027857        16800

symbol "_gpbQsel1BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027837        16718

symbol "_gpbQsel1BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027843        16751

symbol "_gpbQsel1BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./General/GenericFunctions.obj"              HVFE_NEXT_GEN      line 0   1332255027858        16803

symbol "_gpbQsel2BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027840        16734

symbol "_gpbQsel2BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027847        16767

symbol "_gpbSetBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027837        16717

symbol "_gpbSetBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027843        16750

symbol "_gpbSetBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./General/GenericFunctions.obj"              HVFE_NEXT_GEN      line 0   1332255027857        16802

symbol "_gpcClearBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027838        16725

symbol "_gpcClearBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027845        16758

symbol "_gpcDatBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027836        16711

symbol "_gpcDatBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027842        16744

symbol "_gpcDatBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./General/GenericFunctions.obj"              HVFE_NEXT_GEN      line 0   1332255027855        16796

symbol "_gpcDirBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027839        16726

symbol "_gpcDirBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027845        16760

symbol "_gpcMux1BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027838        16722

symbol "_gpcMux1BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027844        16755

symbol "_gpcMux2BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027836        16708

symbol "_gpcMux2BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027841        16741

symbol "_gpcMux2BitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./General/GenericFunctions.obj"              HVFE_NEXT_GEN      line 0   1332255027854        16793

symbol "_gpcPudBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027840        16732

symbol "_gpcPudBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027846        16765

symbol "_gpcSetBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027836        16704

symbol "_gpcSetBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027841        16737

symbol "_gpcSetBitVal" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./General/GenericFunctions.obj"              HVFE_NEXT_GEN      line 0   1332255027853        16789

symbol "_relayControls" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027837        16713

symbol "_relayControls" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027842        16746

symbol "_relayControls" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./General/GenericFunctions.obj"              HVFE_NEXT_GEN      line 0   1332255027856        16798

 

  • I'll examine one related set of error messages.  It appears that same error is repeated with several other symbols.

    Nino Paldan said:

    symbol "__ftable" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc_Init.obj"             HVFE_NEXT_GEN      line 0   1332255027836        16707

    symbol "__ftable" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./Components/ADC/Adc.obj"                   HVFE_NEXT_GEN      line 0   1332255027841        16740

    symbol "__ftable" redefined: first defined in "./Components/ADC/hvfeExternalAD.obj"; redefined in "./General/GenericFunctions.obj"              HVFE_NEXT_GEN      line 0   1332255027854        16792

    This means that __ftable (written "_ftable" in C) is defined in 4 files: hvfeExternalAD.obj, Adc_Init.obj, Adc.obj and GenericFunctions.obj.  I presume these definitions occur in C source files of the same base name as the object files.  You can only have one definition of any global variable or function.  Please see http://c-faq.com/decl/decldef.html for a full discussion.

    You say you are trying to create libraries.  Perhaps you aren't creating the libraries correctly.  Creating a library requires use of the archiver, but not the linker.  How are you creating these libraries?

    Thanks and regards,

    -George

  • Hello George,

    Thanks for your reply. To clarify about the setup, we have a Master project that we have taken bits out of and made into libraries. We do use the archiver to make the libraries and we have no issues there as far as we can tell. The problem arises when we include the library into the Master project and call functions in them. However this seems to only happen when we pass pointers(beginning to think that this is not the problem). We did take a look into the definitions and found some duplicates (fixed those), but some that the errors complain about don't even exist in said files. Symbols that has double underscores like so __ftable seems to not exist but the ones that has a single underscore do if we search for them without the underscore(does this make sense?). By the way, ftable does not exist with either double/single or without underscore in the project (not sure what ftable is to be honest, anyone?). We are going through all the definitions in the project and hopefully we'll get it resolved, if nothing else the code will get cleaner :)

    If you or anyone else roaming these forums have any other thoughts on this it would be greatly appreciated.

    Regards,

    -Nino

  • Nino Paldan said:

    (not sure what ftable is to be honest, anyone?).

    It's probably the global FILE array in the compiler's run-time support library.  You'll get a reference to _ftable if you use the stdout, stdin, or stderr macros.