Building a Static Library
A static library is a collection of compiled code that is copied directly into an executable at build time, making the program self-contained without requiring the library at runtime.
To create and use a static library in CMake, define it with add_library(... STATIC ...), then link it to your executable using target_link_libraries. Use target_include_directories to expose the library headers. CMake builds the library and links it automatically, allowing your program to use its functions.
main.c
src/hello.c
src/hello.h
CMakeLists.txt
123456#include "hello.h" int main() { say_hello(); return 0; }
When a static library is in another folder, include it with add_subdirectory, then link it using target_link_libraries. Use target_include_directories to expose the headers. This structure keeps projects organized and makes libraries easy to reuse.
app/main.c
libmath/math.c
libmath/math.h
CMakeLists.txt
libmath/CMakeLists.txt
12345678#include <stdio.h> #include "math.h" int main() { int result = add(3, 4); printf("3 + 4 = %d\n", result); return 0; }
A static library is a collection of object files bundled into a single archive. When linked, the library is copied directly into the executable, so no separate library file is needed at runtime. CMake handles this using add_library and target_link_libraries, resolving all dependencies during the build.
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Can you show me an example CMakeLists.txt for using a static library?
How do I organize my project folders for static libraries?
What is the difference between a static and a shared library in CMake?
Awesome!
Completion rate improved to 6.67
Building a Static Library
Sveip for å vise menyen
A static library is a collection of compiled code that is copied directly into an executable at build time, making the program self-contained without requiring the library at runtime.
To create and use a static library in CMake, define it with add_library(... STATIC ...), then link it to your executable using target_link_libraries. Use target_include_directories to expose the library headers. CMake builds the library and links it automatically, allowing your program to use its functions.
main.c
src/hello.c
src/hello.h
CMakeLists.txt
123456#include "hello.h" int main() { say_hello(); return 0; }
When a static library is in another folder, include it with add_subdirectory, then link it using target_link_libraries. Use target_include_directories to expose the headers. This structure keeps projects organized and makes libraries easy to reuse.
app/main.c
libmath/math.c
libmath/math.h
CMakeLists.txt
libmath/CMakeLists.txt
12345678#include <stdio.h> #include "math.h" int main() { int result = add(3, 4); printf("3 + 4 = %d\n", result); return 0; }
A static library is a collection of object files bundled into a single archive. When linked, the library is copied directly into the executable, so no separate library file is needed at runtime. CMake handles this using add_library and target_link_libraries, resolving all dependencies during the build.
Takk for tilbakemeldingene dine!