Камрады, нужна помощь советом. Я этот регбус решить не могу уже третий день.
Есть библиотеки на c++, есть тестовое приложение тоже на плюсах которое использует библиотеки. Приложение работает как часы.
Я сделал обёртку для python через swig, и эта обёртка не работает, поскольку где-то в недрах библиотеки просто теряется вызов одной функции из другой. Отследил я это повставляв printf'ы.
Демка на C++ собирается таким Makefile
Обёртка под python таким
Всё это дело собиралось под gcc-4.2 и gcc-3.4, но результат один. Библиотека под питон не работает.
Кто нибудь сталкивался, с тем, что gcc теряет вызовы функций при сборке ? Не при сборке, не при выполнении ошибок нет. Функция просто не вызывается.
Если надо, то полностью исходники: http://iar.spb.ru/_media/projects/cyberpay.tar.gz (~300k)
Вызов проблемной функции в libipriv/libcheck.cpp (203)
Сама функция int getsecretkey(...) в libipriv/mgmt.c (433)
Есть библиотеки на c++, есть тестовое приложение тоже на плюсах которое использует библиотеки. Приложение работает как часы.
Я сделал обёртку для python через swig, и эта обёртка не работает, поскольку где-то в недрах библиотеки просто теряется вызов одной функции из другой. Отследил я это повставляв printf'ы.
Демка на C++ собирается таким Makefile
APPNAME = cyberpay2
CC = g++
CFLAGS = -g3 -Ilibauth -Llibauth -Ilibipriv -Llibipriv -Ihttplite -Lhttplite -Ilib -Llib
CLIBS = -lauth -lm -lapp -lssl -lcrypto -lipriv -lhttp
all: cyberpay
...
cyberpay:
$(CC) $(CFLAGS) -o $(APPNAME) cyberpay.cpp $(CLIBS)
Обёртка под python таким
CC = g++
CFLAGS = -O6 -g3 -I. -I../libauth -L../libauth -I../libipriv -L../libipriv -I../httplite -L../httplite -I../lib -L../lib
CLIBS = -lauth -lm -lapp -lssl -lcrypto -lipriv -lhttp
all: swig linklib
swig:
swig -python -c++ libauth.i
linklib:
$(CC) -c libauth_wrap.cxx -I/usr/include/python2.4 $(CFLAGS)
$(CC) -shared -o _libauth.so $(CFLAGS) libauth_wrap.o $(CLIBS)
Всё это дело собиралось под gcc-4.2 и gcc-3.4, но результат один. Библиотека под питон не работает.
Кто нибудь сталкивался, с тем, что gcc теряет вызовы функций при сборке ? Не при сборке, не при выполнении ошибок нет. Функция просто не вызывается.
Если надо, то полностью исходники: http://iar.spb.ru/_media/projects/cyberpay.tar.gz (~300k)
Вызов проблемной функции в libipriv/libcheck.cpp (203)
Сама функция int getsecretkey(...) в libipriv/mgmt.c (433)
