feat: add shared library build and example application

This commit is contained in:
user
2026-07-19 17:53:57 +04:00
parent 0e0eb1e8e5
commit 0c5b288833
5 changed files with 107 additions and 1 deletions
+40
View File
@@ -0,0 +1,40 @@
ROOT_DIR := $(abspath ..)
CC := gcc
CXXFLAGS := -std=c++17 \
-Wall \
-Wextra \
-Werror \
-fPIC \
-I$(ROOT_DIR)/core/include \
-Iinclude
LDFLAGS := -lstdc++
BUILD_DIR := $(ROOT_DIR)/build
TARGET := $(BUILD_DIR)/liblogger.so
SRC := src/logger.cpp
.PHONY: all clean
all: $(TARGET)
$(TARGET): $(SRC)
@mkdir -p $(BUILD_DIR)
$(CC) \
$(CXXFLAGS) \
-shared \
$< \
-o $@ \
$(LDFLAGS)
clean:
rm -f $(TARGET)
+7
View File
@@ -0,0 +1,7 @@
#pragma once
#if defined(_WIN32)
#define LOGGER_API __declspec(dllexport)
#else
#define LOGGER_API __attribute__((visibility("default")))
#endif
+2 -1
View File
@@ -2,6 +2,7 @@
#include <string>
#include "export.hpp"
#include "log_level.hpp"
#include "result.hpp"
@@ -19,7 +20,7 @@ namespace logger {
* Методы with* используют неизменяемый подход:
* они создают новый экземпляр Logger с изменённой конфигурацией.
*/
class Logger {
class LOGGER_API Logger {
public:
/**
* @brief Создаёт объект логгера.