My application consists of two projects. The first is an abstraction library that hides details of OS and hardware. The second is an executable that uses the abstraction library. In this manner I am hoping to make the code for the executable platform independent, because it doesn't directly call any platform specific APIs, it just utilized services of the abstraction library.
This worked well for the Win32 build (where I have a VS solution consisting of one exe project that links to a static library project that is the abstraction layer).
Now am I trying to do this for a TI platform using CCS. I have the abstraction layer as an RTSC static library. I am hoping to isolate any calls to platform specific issues into this, e.g. use of SYS/BIOS features. Then I have a standard CCS executable (non-RTSC) that links to the abstraction library.
So far I have had success building the static library. I have also been able to compile the executable project. However when I get to the link step for the executable project, it fails, e.g. I get the following error related to my use of sockets:
undefined first referenced
symbol in file
--------- ----------------
accept Debug\AlTiLibProj.lib<Tcp.obj>
I am able to get past the initial set of link errors by hunting down individual libraries (e.g. C:\ti\ndk_2_22_03_20\packages\ti\ndk\stack\lib\stk.ae66) and having the executable project link to them, but that just pushed the failure to some other link errors. I suppose I could do this over and over, but this seems fragile and probably not the correct way to be doing it.
Other details:
I have associated the executable project with the static library project by:
<executable's project properties> -> Build -> Dependencies -> <added static library>
<executable's project properties> -> Build -> C6000 Linker -> File Search Path -> Include library file or command file as input -> <added static library>
CCS v5.5.0.00077
TI compiler v7.4.6
I have seen the following link but I wasn't able to use it to do what I want, nor did it convince me that what I am trying to do is impossible (although perhaps it should):
http://e2e.ti.com/support/embedded/bios/f/355/t/297814.aspx
Since this is a linker issue I am first asking here, although it does involve other technologies (RTSC, SYS/BIOS, etc), so if you think another forum would be more appropriate (CCS or RTOS) I will try elsewhere.