Это последующая деятельность после Dynamic Shared Library compilation with g++.C++ Dynamic Shared Library on Linux
Я пытаюсь создать общую библиотеку классов в C++ в Linux. Я могу получить библиотеку для компиляции, и я могу вызвать некоторые из (неклассовых) функций, используя обучающие программы, которые я нашел here и here. Мои проблемы возникают, когда я пытаюсь использовать классы, определенные в библиотеке. Во втором учебном пособии, в котором я был связан, показано, как загрузить символы для создания объектов классов, определенных в библиотеке, но заканчивается с использованием этих объектов для выполнения любой работы.
Кто-нибудь знает более полное руководство по созданию общих библиотек классов C++, которое также показывает, как использует эти классы в отдельном исполняемом файле? Очень простой учебник, который показывает создание объекта, использование (простые геттеры и сеттеры будут в порядке), и удаление было бы фантастическим. Ссылка или ссылка на некоторый открытый исходный код, который иллюстрирует использование библиотеки общих классов, были бы одинаково хорошими.
Хотя ответы от codelogic и nimrodm работают, я просто хотел бы добавить, что я взял копию Beginning Linux Programming с тех пор, задавая этот вопрос, и его первая глава содержит код примера C и хорошие объяснения для создания и использования как статические, так и разделяемые библиотеки. Эти примеры доступны через Поиск книг Google в an older edition of that book.
Я не уверен, что понимаю, что вы подразумеваете под «использованием», когда указатель на объект возвращается, вы можете использовать его, как если бы вы использовали любой другой указатель на объект. – codelogic
В статье, на которой я ссылаюсь, показано, как создать указатель на функцию объекта с помощью dlsym. Он не показывает синтаксис для создания и использования объектов из библиотеки. –
Вам понадобится файл заголовка, описывающий класс. Почему, по-вашему, вы должны использовать «dlsym» вместо того, чтобы позволить ОС находить и связывать библиотеку во время загрузки? Дайте мне знать, если вам нужен простой пример. – nimrodm