G++ Linker issue?

Hi I have created a library (named CUSTOMLIBRARY) using the OpenAT wizard, which builds perfectly well. I then reference this (using project settings) in an OpenAT Application. At link time I am getting an error stating that wm_stricmp and adl_rtcGetTime (which are used in the library) have undefined references. These are the only wip/adl functions used in the library. If I comment them out, then this all builds OK.

I am not sure where this has gone wrong? I was wondering if it has to do with the fact that G++ is trying to link the library before it has linked WIP and ADL libraries? But I am unsure if this is the cause. Does anyone have a suggestions?

Below is my command line as defined by DevStudio 3.1 (sorry it is so difficult to read)

"C:\SierraWireless\Developer Studio 3\tools\armeabigcc\4.7.4\bin\arm-none-eabi-g++.exe" -Wl,--script,gcc.lkopt -Wl,-( src\generated.o src\eabi_stub.o src\Utls_Trace.o src\Utls_Time.o src\Utls_FileSystem.o src\Utls_CircularBuffer.o src\Utls.o src\TskWeb.o src\TskMain_Queue.o src\TskMain_GPRS.o src\TskMain.o src\TskLogger_Serial.o src\TskLogger.o src\App_Flash.o src\App_Commands.o -lCUSTOMLIBRARY -LC:\Projects\CUSTOMLIBRARY\Target_GCC_Debug -Os -O2 -fshort-enums -fdollars-in-identifiers -ggdb3 -u _siwiStubsImplementation C:\Projects\CUSTOMLIBRARY\Target_GCC_Debug\CUSTOMLIBRARY.lib -nostartfiles -fomit-frame-pointer -mthumb-interwork -mthumb -march=armv5te -msoft-float -mfpu=fpa -mapcs -mno-apcs-stack-check -Wl,-nmagic -Wl,-Map,MYAPPLICATION.map -laeabi -L"C:\SierraWireless\Developer Studio 3\configuration\org.eclipse.osgi\bundles\806\1\.cp\libs\oat" "C:\SierraWireless\Embedded Software\com.wavecom.openat.ide.spm.lib.plugin.model.WIP.\resources\WIP\RVDS_WIP.lib" "C:\SierraWireless\Embedded Software\com.wavecom.openat.ide.spm.lib.plugin.model.WIP.\resources\WIP\RVDS_WIPSoftLib.lib" "C:\SierraWireless\Embedded Software\com.wavecom.openat.ide.spm.lib.plugin.model.Security.\resources\Security\RVDS#Release_wipssl.lib" "C:\SierraWireless\Embedded Software\com.wavecom.openat.ide.spm.lib.os.model.\resources\ADL\RVDS_ADL.lib" -Wl,-) -oGPRS_Smart_Gateway.axf

Isn’t wm_stricmp just a #define - so, if the Linker is seeing it, something’s very wrong… :question:

Also, WIP and Open-AT are just ‘C’ - not C++ - so you’ll probably need some extern “C” somewhere…

Ah. Of course, not sure how I missed that. Thanks for the tip awneil. You where spot on.