У меня есть c-библиотека, которую я использую в gcc. Библиотека имеет расширение .lib, но всегда связано как статическая библиотека. Если я пишу программу, которая использует библиотеку как c-код, все как a-ok. Если я, однако, переименую файл в .cpp(делая простые вещи, которые работают как в c/С++), я получаю ссылку undefined. Это простые небольшие программы, которые я пишу для тестирования, так что ничего необычного. Я компилирую, используя:
gcc -g -Wall -I <path to custom headers> -o program main.c customlibrary.lib -lm -lpthread
Вышеизложенное работает как шарм. Однако:
g++ -g -Wall -I <path to custom headers> -o program main.cpp customlibrary.lib -lm -lpthread
или
gcc -g -Wall -I <path to custom headers> -o program main.cpp customlibrary.lib -lm -lpthread -lstdc++
приводит к undefined ссылке на любую функцию в customlibrary.lib. Я попытался создать символическую ссылку с именем customlibrary.a, но не повезло.
Почему g++ не распознает мою библиотеку. К сожалению, у меня нет доступа к исходному коду библиотек, но ссылка на c-lib на С++ не должна быть проблемой?