C-Bibliothek nicht mit gcc / g ++ verknüpft

Ich habe eine C-Bibliothek, die ich in GCC verwende. Die Bibliothek hat die Erweiterung .lib, ist jedoch immer als statische Bibliothek verknüpft. Wenn ich ein Programm schreibe, das die Bibliothek als C-Code verwendet, ist alles a-ok. Wenn ich die Datei jedoch in .cpp umbenenne (was einfache Dinge betrifft, die in c / c ++ funktionieren), erhalte ich einen undefinierten Verweis. Dies sind einfache kleine Programme, die ich zu Testzwecken schreibe, also nichts Besonderes. Ich kompiliere mit:

gcc -g -Wall -I <path to custom headers> -o program main.c customlibrary.lib -lm -lpthread

Das Obige wirkt wie ein Zauber. Jedoch:

g++ -g -Wall -I <path to custom headers> -o program main.cpp customlibrary.lib -lm -lpthread

oder

gcc -g -Wall -I <path to custom headers> -o program main.cpp customlibrary.lib -lm -lpthread -lstdc++

führt zu einem undefinierten Verweis auf eine Funktion in customlibrary.lib. Ich habe versucht, einen symbolischen Link namens customlibrary.a zu erstellen, aber kein Glück.

Warum erkennt g ++ find meine Bibliothek nicht? Leider habe ich keinen Zugriff auf den Quellcode der Bibliotheken, aber das Verknüpfen einer c-lib mit c ++ sollte kein Problem sein, oder?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage