Wie verlinke ich auf eine statische Bibliothek in C?

Lesezeit: 1 Minute

Ich verwende code::blocks, um meine statische Bibliothek zu kompilieren. Das Ausgabeergebnis ist eine libstatic.a-Datei. Wie verlinke ich nun auf meine Bibliothek, um kompilierte Funktionen zu verwenden?

(Ich habe versucht, #include “libstatic.a” zu verwenden, aber mein Projekt wird nicht kompiliert.)

cc -o yourprog yourprog.c -lstatic

oder

cc -o yourprog yourprog.c libstatic.a

  • Ich habe das 2te ausprobiert und es funktioniert. Danke. Ich könnte auch in der Lage sein, Code :: Blocks so zu konfigurieren, dass sie auch funktionieren. 🙂

    Benutzer188276

    10. November 2009 um 8:05 Uhr

Du solltest #include "libstatic.h"dh verwenden Sie die entsprechende Header-Datei in Ihrem Code (das ist warum Ihr Code nicht kompiliert wird) und fügen Sie den Pfad zu Ihrer ein libstatic.a in den Linker-Optionen als eine Ihrer Eingabebibliotheken.

Dies Website enthält einige Beispiele zum Verknüpfen mit einer statischen Bibliothek, z

gcc -I. -o jvct jvct.c libjvc.a

  • Danke. Endlich habe ich es mit Codeblocks gemacht und herausgefunden, dass #include .h-Datei nicht unbedingt den gleichen Namen wie die .a-Datei haben muss.

    Benutzer188276

    10. November 2009 um 8:03 Uhr

Ich musste den Bibliothekspfad in meinem Makefile festlegen. Für diesen Fall könnten Sie verwenden:

gcc -o myapp main.c -L. -lstatic

Benutzeravatar von Hafiz Muhammad Shafiq
Hafiz Muhammad Shafiq

gcc -I. -o jvct jvct.c libjvc.a

Um rein statisch zu verlinken, verwenden Sie -static

cc -static yourprogram.c libstatic.a

  • Beachten Sie, dass dies dazu führt, dass der Compiler statisch verlinkt alle Bibliotheken, einschließlich libc, und erzeugen statisch gelinkte Binärdateien. Es könnte sein, was Sie wollen (oder nicht).

    – WGH

    15. März 2017 um 13:40 Uhr

  • Beachten Sie, dass dies dazu führt, dass der Compiler statisch verlinkt alle Bibliotheken, einschließlich libc, und erzeugen statisch gelinkte Binärdateien. Es könnte sein, was Sie wollen (oder nicht).

    – WGH

    15. März 2017 um 13:40 Uhr

1390020cookie-checkWie verlinke ich auf eine statische Bibliothek in C?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy