Enhanced Static Library Support in Code Red IDE v4
Compared to earlier versions of the Code Red IDE, version 4 provides enhanced project wizards for creating static library projects. In addition it also provides a more automated mechanism for creating the links to a static library project from an application project.
Creating static library projects
Project wizards for creating C/C++ static library projects are provided via the standard project wizard accessible via
Quickstart Panel -> New project
Selecting the C/C++ Library project wizard for the chosen MCU family will then display one or more option screens, allowing you to choose a number of options, including, where appropriate, the CMSIS library project to be used from within the library project.
After clicking on Finish, your library project will then be created with a source subdirectory with your chosen name (defaults to src), plus an optional inc subdirectory to store header files in. The top level of the project will also have a liblinks.xml placed in it (see below for how to use this).
Creating links to library projects
In previous versions of the Code Red IDE, using a library project required the manual setting of a number of configuration options within the application project that you wished to use the library project. These settings are detailed in the FAQ Using library projects from your own projects.
Although you can still manually set things up, the Code Red IDE version 4 now also provides a more automated mechanism for creating the links to a static library project from an application project. This is done via the "smart update" wizard.
When a new static library project is created using the Code Red IDE version 4, a file called liblinks.xml will be created in the top level of the library project. If you right click on this file within the Project Explorer View, you can then select:
Smart update -> Smart update
which will run the smart update wizard. This will pop up a dialog box listing all the projects in the current workspace. Simply tick those projects that you want to link to this particular static library project.