Have downloaded the test code from message #7, and will look into it.
While a reasonable effort, there are still details that may be improved.
The header file have include guard.
Good, but the comment at the end of the include guard block,
is different from the macro at the startof the block.
Header file also have C linkage block for eventual use with C++.
Good, but I suspect that also the declaration of: extern const int ciaone;,
should be inside the C linkage block.
Any problem because of this will not appear until an actual C++ compiler is used.
In the header file, my suggestion is that the library function in test.c ,
should be declared in the header file test.h:
While 'c' is a good enough function name for use in a minimal test,
it isn't a particular good name for a library function.
If making a library for use in a BIG code system, it may be worth putting some planning into naming of libraries and library functions.
It is quite common to make every function name within the same library, to have some part of the name in common.
But then in the Application project source code,
there is a header file with different name and different content, from what is in the library project.
This is a grave mistake, and break with the fundamental idea of using header files in C code:Header file used when compiling the library, and when compiling and linking the application, shall be the same file or an identical copy!
During development, it is definitely best to use the same header file both in library development,
and in development of the application.
If making a copy of the library archive file: BasicLibrary.X.a
is made for use in another project, then an identical copy of the header file
: BasicLibrary.h, should be distributed at the same time.
In the header file: BasicLibrary.h,
there is Definition of the const variable: const int ciaone = 3; with initialization value.
This is contrary to what I tried to explain and demonstrate in message #5.
Definition of const variables, or other global variables with initialization value,
should be in one of the .c source files, and in one file only.
Either in one of the library source files, or in one .c source file in each application project.
Prototype declaration of the c library function in BasicLibrary.h is also incomplete.