Hi,I'm using the Arm Keil Studio Pack (MDK v6) with Visual Studio Code (v1.109).And want to start a new project while still using an older library.
My project structure is as follows:ProjectsDirectory/ NewMDKv6Solution/ NewProject/ main.c NewProject.cproject.yml OldStillUsedCodebase/ include/ library.h src/ library.c
ProjectsDirectory/
NewMDKv6Solution/
NewProject/
main.c
NewProject.cproject.yml
OldStillUsedCodebase/
include/
library.h
src/
library.c
In main.c:#include "library.h"
#include "library.h"
int main(void) { library_init();
int main(void) {
library_init();
for (;;);}
for (;;);
}
In library.h:#ifndef LIBRARY_H#define LIBRARY_H
#ifndef LIBRARY_H
#define LIBRARY_H
void library_init(void);
#endif
In library.c:#include "library.h"
void library_init(void) { // ...}
void library_init(void) {
// ...
In NewProject.cproject.yml:project: groups: - group: Source Files files: - file: ./main.c
project:
groups:
- group: Source Files
files:
- file: ./main.c
add-path: - ../../OldStillUsedCodebase/include - ../../OldStillUsedCodebase/src
add-path:
- ../../OldStillUsedCodebase/include
- ../../OldStillUsedCodebase/src
When I now try to build my project, I get a linker error stating that `library_init` cannot be found.After looking at the outputted files, I noticed that `library.c` did not get compiled.So I edited `NewProject.cproject.yml` to use this file as a source file instead.
In NewProject.cproject.yml:project: groups: - group: Source Files files: - file: ./main.c # This would be tedious with 100+ files - group: Library Files files: - file: ../../OldStillUsedCodebase/src/library.c
# This would be tedious with 100+ files
- group: Library Files
- file: ../../OldStillUsedCodebase/src/library.c
add-path: - ../../OldStillUsedCodebase/include
Is there a way to declare an entire directory, where all the files inside should be compiled?Or maybe even that I can define a filepath pattern like ../../OldStillUsedCodebase/src/*.c somehow?
../../OldStillUsedCodebase/src/*.c
Thank you in advance.