Я следовал руководству по объединению C и TCL с использованием Swig.Учебник, казалось, работал правильно, но в конце я столкнулся с ошибкой, которую не могу решить.Ситуация выглядит следующим образом:
Урок, которым я следовал: http://www.swig.org/tutorial.html.
У меня есть файл с именем test.c:
char *HelloWorld()
{
return "hello world";
}
и другой с именем test.i:
%module test
%{
/* Put header files here or function declarations like below */
extern char *HelloWorld();
%}
extern char *HelloWorld();
Затем я использовал следующие аргументы командной строки, чтобы подготовить правильные файлы:
gcc -c test.c -o test.o
swig -tcl test.i
gcc -c test_wrap.c -o test_wrap.o
gcc -dynamiclib -framework Tcl test.o test_wrap.o -o test.so
И, наконец, я попытался загрузить его, используя:
tclsh
% load test.so test
В этот момент я получил следующую ошибку:
dlsym(0x100600090, Test_Unload): symbol not founddlsym(0x100600090, Test_SafeUnload): symbol not found
Насколько я знаю, я не отклонился от учебника.Может кто-нибудь сказать мне, как это, что я получил эту ошибку и, что более важно, как избавиться от нее?
Заранее спасибо!