Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:3
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:7
Форум » starterkit.ru » Embedded Linux
Динамическая библиотека!
esp23
Добавлено 07.08.2013 18:11
0
Сообщение: 1
esp23
0

Пункты: 1090
Регистрация: 19.06.2013
Вопрос такой хочу создать динаическую библиотеку libi2c.so.
Создал исходник libi2c.c написал код. Библиотеку создаю под arm процессор. Компилю так

arm-none-linux-gnueabi-gcc -fPIC -c libi2c.c
arm-none-linux-gnueabi-gcc -shared -o lib_i2c.so libi2c.o

пытаюсь подключить ее в питоне


>>> from ctypes import *
>>> dl=cdll.LoadLibrary("/lib_i2c.so")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/ctypes/__init__.py", line 431, in LoadLibrary
File "/usr/lib/python2.7/ctypes/__init__.py", line 353, in __init__
OSError: File not found

помогите если можете!
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 08.08.2013 00:11 Редактировалось 08.08.2013 00:37 Сообщение: 2
sasamy
4.70

Пункты: 77012
Регистрация: 14.08.2009
Цитата

dl=cdll.LoadLibrary("/lib_i2c.so")
...
OSError: File not found


Почему-то у вас эта библиотека ищется в корне (/), попробуйте в корень скопировать. Куда вы библиотеку в ФС скопировали ? Пути поиска по умолчанию для библиотек - /lib и /usr/lib, где питоньи модули должны лежать - не в курсе, но точно не в корне :). Вот тут туториал есть с простыми примерами
http://en.wikibooks.org/wiki/Python_Programming/Extending_with_C
вроде ничего сложного
Спуститься к концу Подняться к началу
Персональная информация
esp23
Добавлено 08.08.2013 09:44 Сообщение: 3
esp23
0

Пункты: 1090
Регистрация: 19.06.2013
я опечтался там не "/lib_i2c.so" а "lib_i2c.so" саму библиотеку я положил в /usr/lib. Это не модуль расширения а динамическая библиотека которая должна работать на плате
at91sam9x512-simxxx
Спуститься к концу Подняться к началу
Персональная информация
esp23
Добавлено 08.08.2013 15:42 Сообщение: 4
esp23
0

Пункты: 1090
Регистрация: 19.06.2013
Что никто не сталкивался с такой проблемой?
Спуститься к концу Подняться к началу
Персональная информация
xaba
Добавлено 08.08.2013 17:07 Сообщение: 5
xaba
4

Пункты: 15268
Регистрация: 23.04.2012
А тут не пробовали указывать полный путь ?
dl=cdll.LoadLibrary("/usr/lib/lib_i2c.so")
Спуститься к концу Подняться к началу
Персональная информация
esp23
Добавлено 09.08.2013 13:29 Сообщение: 6
esp23
0

Пункты: 1090
Регистрация: 19.06.2013
Все извините за все таки глупый вопрос нужно было сначало поковыряться а потом писать!
Не ставил опции -nostdli и -nostartfiles
всем спасибо за то что ответили!
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux