Jump to content

    

Портировать Pawn на малинку

Recommended Posts

jenya7
43 minutes ago, VladimirG said:

Видимо у авторов была на то причина. В любом случае, библиотека собирается на раз.

я сделал

Quote
gcc amx.c amxcore.c amxcons.c amxaux.c ../linux/getch.c -ldl -I../linux -c -fPIC
gcc -shared -o aux.so  *.o -ldl

но у меня создался amx.o а не amx.so. а объектный файл компилятор не видит.

Share this post


Link to post
Share on other sites

VladimirG
48 minutes ago, jenya7 said:

gcc -shared -o aux.so *.o -ldl

После этой команды, должен появиться aux.so, а не amx.so.

Навзвание впрочем не имеет значение, но если хочется подключать через lamx то.

1. изменить -o aux.so  на -o libamx.so (или просто перименовать получившийся файл)

2.  указать полный путь к сему файлу в  /etc/ld.so.conf.d/amx.conf и сделать sudo ldconfig

Edited by VladimirG
дополнил

Share this post


Link to post
Share on other sites

jenya7
4 minutes ago, VladimirG said:

После этой команды, должен появиться aux.so, а не amx.so

а у меня почему то сгенерировался aux.o.

Edited by jenya7

Share this post


Link to post
Share on other sites

VladimirG
5 minutes ago, jenya7 said:

а у меня почему то сгенерировался aux.o.

Никаких ошибок при выполнении команд небыло?

У меня gcc version 6.3.0 20170516 (Raspbian 6.3.0-18+rpi1+deb9u1)

 

Share this post


Link to post
Share on other sites

jenya7
20 hours ago, VladimirG said:

Никаких ошибок при выполнении команд небыло?

У меня gcc version 6.3.0 20170516 (Raspbian 6.3.0-18+rpi1+deb9u1)

 

попробую ещё раз.

 

нет. ошибок не и so не гененрируется.

 

вот что ответили в поддержке

Quote

The CMake makefile creates the pawnrun program. This program statically
links with amx.o and amxcore.o (plus a few others). But the makefile
does not create shared libraries for amx and amxaux.

If you want that, you have to adapt the makefiles.

а как переделать makefiles?

 

вобщем победил я как то это чудо включив в проект следующее

LIBS += -ldl

INCLUDEPATH += /home/pi/pawn/amx
INCLUDEPATH += /home/pi/pawn/linux

SOURCES += /home/pi/pawn/amx/amx.c
SOURCES += /home/pi/pawn/amx/amxcore.c
SOURCES += /home/pi/pawn/amx/amxcons.c
SOURCES += /home/pi/pawn/amx/amxaux.c
SOURCES += /home/pi/pawn/linux/getch.c
SOURCES += /home/pi/pawn/amx/amxexec_gcc.c

теперь вроде как всё компилируется без ошибок.

Edited by jenya7

Share this post


Link to post
Share on other sites

jenya7
2 hours ago, VladimirG said:
gcc amx.c amxcore.c amxcons.c amxaux.c ../linux/getch.c -ldl -I../linux -c -fPIC
gcc -shared -o amx.so  amx.o amxcore.o amxcons.o amxaux.o getch.o -ldl

А так?

да! так сгенерировался amx.so

я ещё добавил

gcc -shared -o amxaux.so  amx.o amxcore.o amxcons.o amxaux.o getch.o -ldl

теперь все библиотеки сгенерированны.

 

спасибо. приятно иметь дело с профессионалом.  :)

Share this post


Link to post
Share on other sites

jenya7
On 2/15/2022 at 3:15 PM, xvr said:

2 TC - а почему не использовать интерпретатор JS, который из коробки идёт с Qt?

 

я не знал. у Qt есть интерпретатор джава скриптов? но мне нужна возможность использовать свои внешние функции в скрипте.

Edited by jenya7

Share this post


Link to post
Share on other sites

gridinp
3 часа назад, jenya7 сказал:

я не знал. у Qt есть интерпретатор джава скриптов? но мне нужна возможность использовать свои внешние функции в скрипте.

В Qt4 есть и можно расширять на C++, но в Qt5 уже вырезали. Модуль называется QtScript

Edited by gridinp

Share this post


Link to post
Share on other sites

jenya7
34 minutes ago, gridinp said:

В Qt4 есть и можно расширять на C++, но в Qt5 уже вырезали. Модуль называется QtScript

 

досада. у меня как раз Qt 5. там есть фичеры которые мне нужны.

Share this post


Link to post
Share on other sites

gridinp
6 часов назад, jenya7 сказал:

досада. у меня как раз Qt 5. там есть фичеры которые мне нужны.

я наверное ошибся, вроде как он в Qt5 есть для совместимости Qt Script, вот в Qt6 уже точно нет

Share this post


Link to post
Share on other sites

jenya7
On 2/17/2022 at 6:40 PM, gridinp said:

я наверное ошибся, вроде как он в Qt5 есть для совместимости Qt Script, вот в Qt6 уже точно нет

предлагают пользоваться QJSEngine вместо Qt Script.

посмотрел пример

QJSValue fun = myEngine.evaluate("(function(a, b) { return a + b; })");

интересно если я могу вызвать свою внешнюю функцию из скрипта.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.