Avatar ·

Statische und dynamische Linkung in C++: Was wählt man für Leistung und Größe?

Hallo zusammen! Ich bin ein C++-Anfänger und bin verwirrt über die Arten der Linkung. Ich schreibe ein kleines Projekt – ein Bildverarbeitungstool, das die Bibliotheken libpng und zlib verwendet. Ich habe zwei Varianten erstellt: mit statischer Linkung (die .exe-Datei wiegt 12 MB) und mit dynamischer Linkung (ich verwende .dll, die exe-Größe beträgt 500 KB, aber .dll-Dateien müssen daneben liegen). Hier ist ein Beispiel für vereinfachten Code, den ich teste: ```cpp #include #include int main() { png_structp png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, nullptr, nullptr, nullptr); if (!png_ptr) { std::cerr << "Failed to create PNG struct\n"; return 1; } std::cout << "PNG library initialized successfully\n"; png_destroy_read_struct(&png_ptr, nullptr, nullptr); return 0; } ``` Build: - Statisch: `g++ main.cpp -lpng -lz -static -o prog_static.exe` - Dynamisch: `g++ main.cpp -lpng -lz -o prog_dynamic.exe` Problem: Ich kann nicht verstehen, welcher Ansatz besser für die Leistung und Größe ist.