реклама на сайте
подробности

 
 
> Возможно ли подключение к проекту динамических библиотек?, ARM MK60DN512
zuuuuk
сообщение Oct 19 2016, 12:28
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 188
Регистрация: 26-04-07
Пользователь №: 27 334



Доброго времени суток.

У меня небольшая программа в eclips.
Я бы хотел к проекту подключить стороннюю динамическую библиотеку. libmod.so
Подскажите это возможно?
И какие ключи при этом нужно применять?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 10)
Kabdim
сообщение Oct 19 2016, 12:53
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Напрягая телепатические способности скажу что надо достать исходники библиотеки, перекомпилировать свои тулчейном и слинковать статически.
Go to the top of the page
 
+Quote Post
zuuuuk
сообщение Oct 19 2016, 13:02
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 188
Регистрация: 26-04-07
Пользователь №: 27 334



Исходники найти очень сложно. Практически не возможно.
Может есть вариант слинковать программу с динамической библиотекой?
А компилятор, для ее компиляции применяли тот же, что и у меня.
компилировали вот так
Код
arm-none-eabi-gcc -fpic -shared ...  -o libmod.so

может часть секций оттуда удалить?
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 19 2016, 13:16
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Вот тут пишут, что не получится просто прилинковать к своей программе.
В то же время динамические библиотеки загружаются и работают в обычных операционных системах. Можно разобраться в механизме загрузки и найти способ использовать библиотеку из своей программы.
Go to the top of the page
 
+Quote Post
zuuuuk
сообщение Oct 19 2016, 14:00
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 188
Регистрация: 26-04-07
Пользователь №: 27 334



Цитата
Вот тут пишут, что не получится просто прилинковать к своей программе.

Я пытаюсь прилинковать эту библиотеку к своей программе.
Цитата
В то же время динамические библиотеки загружаются и работают в обычных операционных системах. Можно разобраться в механизме загрузки и найти способ использовать библиотеку из своей программы.

Вот, вот я тоже об этом подумал.
Может кто подскажет, что почитать о механизме загрузки дин. биб.
Вообще возможно ли загрузить эту библиотеку, без операционной системы? и использовать.
может есть пример кода...
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Oct 19 2016, 14:21
Сообщение #6


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(zuuuuk @ Oct 19 2016, 15:28) *
Подскажите это возможно?


Библиотека не динамическая, а разделяемая.
И естественно ее можно линковать. Иначе для чего её создают?
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 19 2016, 14:22
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(zuuuuk @ Oct 19 2016, 17:00) *
Может кто подскажет, что почитать о механизме загрузки дин. биб.

Гугл в помощь.

Цитата(zuuuuk @ Oct 19 2016, 17:00) *
Вообще возможно ли загрузить эту библиотеку, без операционной системы? и использовать.

Конечно. Грубо говоря, натравить на него загрузчик и сформировать образ, загружаемый в память. Этот образ можно прицепить к своему приложению в двоичном виде, чтобы он сидел в ПЗУ. Сформировать список символов с адресами после загрузки и скормить линкеру, чтобы своя программа могла обращаться к библиотеке.

Цитата(zuuuuk @ Oct 19 2016, 17:00) *
может есть пример кода...

Есть. Вот тут, к примеру.

Но это не для новичков, конечно.
Go to the top of the page
 
+Quote Post
Kabdim
сообщение Oct 19 2016, 14:37
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



Судя по строке, это не динамическая библиотека, а просто странный выбор расширения. попробуйте сархивировать и слинковать как обычную либу.

ЗЫ Просто ради интереса. Это не оно?
Go to the top of the page
 
+Quote Post
jcxz
сообщение Oct 19 2016, 15:06
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(scifi @ Oct 19 2016, 17:22) *
Конечно. Грубо говоря, натравить на него загрузчик и сформировать образ, загружаемый в память. Этот образ можно прицепить к своему приложению в двоичном виде, чтобы он сидел в ПЗУ. Сформировать список символов с адресами после загрузки и скормить линкеру, чтобы своя программа могла обращаться к библиотеке.

осталось только понять: что будет, если эта библиотека сама обратится к функциям ОС, которой нет. smile3046.gif
Go to the top of the page
 
+Quote Post
zuuuuk
сообщение Oct 20 2016, 07:23
Сообщение #10


Частый гость
**

Группа: Участник
Сообщений: 188
Регистрация: 26-04-07
Пользователь №: 27 334



Цитата
Сформировать список символов с адресами после загрузки и скормить линкеру, чтобы своя программа могла обращаться к библиотеке.

scifi,
Вы могли бы вот об этом поподробнее, если не сложно.
как можно "скормить" список символов линкёру? есть ли пример?
Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 20 2016, 07:49
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(zuuuuk @ Oct 20 2016, 10:23) *
Вы могли бы вот об этом поподробнее, если не сложно.

Увы, нет. И лучше бросайте это гиблое дело. wacko.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 13:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.01434 секунд с 7
ELECTRONIX ©2004-2016