Referencing libs generated by the closure tool from a non-RTSC CCSv4 project [message #510289] |
Wed, 27 January 2010 01:22  |
Eclipse User |
|
|
|
http://rtsc.eclipse.org/docs-tip/Command_-_xdc.tools.closure describes how to use the "closure" tool to generate the files necessary for a non-RTSC application to use RTSC-generated target content without the need to use the XDC tools to build the project.
I've found that this works very well with CCSv4.2 projects, except for a couple of minor problems.
Here are the steps I took:
1. create the closure bundle in folder "c:/bundle":
open a command window in the root directory of the CCSv4 RTSC configuration project
cd C:\MyProjects\MyDemo_configuration
xs xdc.tools.closure -d c:/bundle C:/MyProjects/MyDemo_configuration/whole_program/configPkg
2. create a new CCS project that DOES NOT have any dependencies on RTSC or BIOS, named MyClosureDemo
3. added some source code to MyClosureDemo, using the same #include <company/packagename/ModuleName.h> references as you would from a RTSC project
4. set the project's build settings as follows:
Compile settings:
- Add c:\bundle\compiler.opt in the Command Files: (Read options from specified file)
- Add the c:/bundle folder name to the Include file search path
Linker settings
Add the following to the "Include library file or command file as input" section:
c:\bundle\linker.cmd
The problem is with this linker.cmd file.
The generated linker.cmd file contains the following 2 lines:
"configPkg/package/cfg/log.p64P.obj"
"configPkg/package/cfg/log_p64P_x.xdl"
The linker reports the following errors when building the demo project:
<Linking>
"c:\\bundle\\linker.cmd", line 2: error: cannot find file
"configPkg/package/cfg/log.p64P.obj"
"c:\\bundle\\linker.cmd", line 3: error: cannot find file
"configPkg/package/cfg/log_p64P_x.xdl"
If you edit the linker.cmd file and specify the full path names to the .obj and .xdl files, the linker errors change to the following:
<Linking>
error: cannot find file "ti\targets\rts6000\lib\ti.targets.rts6000.a64P"
error: cannot find file "ti\targets\rts6000\lib\boot.a64P"
... and a bunch of libraries associated with the packages I've created.
If you remove the second line of the linker.cmd file and specify the missing libraries directly in the build settings for the project, everything builds cleanly.
Is there a compile option / flag that I need to configure in the CCSv4.2 build settings to resolve the relative paths used in the linker.cmd file and the .xdl file?
Regards,
Brian
|
|
|
Re: Referencing libs generated by the closure tool from a non-RTSC CCSv4 project [message #510508 is a reply to message #510289] |
Wed, 27 January 2010 11:46   |
Eclipse User |
|
|
|
Did you add the -L option as shown in the makefile in the example
( http://rtsc.eclipse.org/docs-tip/Command_-_xdc.tools.closure #Examples)?
On 1/26/2010 10:22 PM, Brian Cruickshank wrote:
> http://rtsc.eclipse.org/docs-tip/Command_-_xdc.tools.closure describes
> how to use the "closure" tool to generate the files necessary for a
> non-RTSC application to use RTSC-generated target content without the
> need to use the XDC tools to build the project.
> I've found that this works very well with CCSv4.2 projects, except for a
> couple of minor problems.
>
> Here are the steps I took:
> 1. create the closure bundle in folder "c:/bundle":
> open a command window in the root directory of the CCSv4 RTSC
> configuration project
> cd C:\MyProjects\MyDemo_configuration
>
> xs xdc.tools.closure -d c:/bundle
> C:/MyProjects/MyDemo_configuration/whole_program/configPkg
>
> 2. create a new CCS project that DOES NOT have any dependencies on RTSC
> or BIOS, named MyClosureDemo
>
> 3. added some source code to MyClosureDemo, using the same #include
> <company/packagename/ModuleName.h> references as you would from a RTSC
> project
>
> 4. set the project's build settings as follows:
> Compile settings:
> - Add c:\bundle\compiler.opt in the Command Files: (Read options from
> specified file)
> - Add the c:/bundle folder name to the Include file search path
>
> Linker settings
> Add the following to the "Include library file or command file as input"
> section:
> c:\bundle\linker.cmd
>
> The problem is with this linker.cmd file.
> The generated linker.cmd file contains the following 2 lines:
> "configPkg/package/cfg/log.p64P.obj"
> "configPkg/package/cfg/log_p64P_x.xdl"
>
> The linker reports the following errors when building the demo project:
> <Linking>
> "c:\\bundle\\linker.cmd", line 2: error: cannot find file
> "configPkg/package/cfg/log.p64P.obj"
> "c:\\bundle\\linker.cmd", line 3: error: cannot find file
> "configPkg/package/cfg/log_p64P_x.xdl"
>
> If you edit the linker.cmd file and specify the full path names to the
> .obj and .xdl files, the linker errors change to the following:
> <Linking>
> error: cannot find file "ti\targets\rts6000\lib\ti.targets.rts6000.a64P"
> error: cannot find file "ti\targets\rts6000\lib\boot.a64P"
> ... and a bunch of libraries associated with the packages I've created.
> If you remove the second line of the linker.cmd file and specify the
> missing libraries directly in the build settings for the project,
> everything builds cleanly.
>
> Is there a compile option / flag that I need to configure in the CCSv4.2
> build settings to resolve the relative paths used in the linker.cmd file
> and the .xdl file?
>
> Regards,
> Brian
|
|
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.04829 seconds