Biblioteka C nie łączy za pomocą gcc / g ++

Mam bibliotekę c, której używam w gcc. Biblioteka ma rozszerzenie .lib, ale jest zawsze połączona jako biblioteka statyczna. Jeśli piszę program, który używa biblioteki jako c-code, wszystko jest ok. Jeśli jednak zmienię nazwę pliku na .cpp (wykonuję proste rzeczy, które działają w obu c / c ++) otrzymuję niezdefiniowane odniesienie. Są to proste małe programy, które piszę w celach testowych, więc nie ma żadnych wymyślnych rzeczy. Kompiluję używając:

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

Powyższe działa jak urok. Jednak:

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

lub

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

powoduje niezdefiniowane odwołanie do dowolnej funkcji w customlibrary.lib. Próbowałem utworzyć dowiązanie symboliczne o nazwie customlibrary.a, ale bez powodzenia.

Dlaczego g ++ nie rozpoznaje mojej biblioteki. Niestety nie mam dostępu do kodu źródłowego bibliotek, ale połączenie c-lib z c ++ nie powinno być problemem?

questionAnswers(3)

yourAnswerToTheQuestion