Isn't the emulator native? why do you need to bind Python to the ARM binaries? -Jose ________________________________ De: Asif Sardar [engr.asif.sardar@xxxxxxxxxxxxxx] Enviado: martes, 14 de octubre de 2014 08:04 p.m. Para: Jose Granados Vergara CC: ell-i-developers@xxxxxxxxxxxxx; Lari Lehtomäki Asunto: Re: Embedding python in emulator Thanks Jose, On native platform, its working for me as well. I think I have to re-compile or cross-compile 32-bit python using ARM tools e.g. using something like CXX=arm-none-linux-gnueabi-g++ and then rebuild robot framework. I have to compile the emulator files using arm-tool chain and I am including the 32-bit python in it built with native gcc toolchain. If anyone else has some suggestions that I will really appreciate! On Tue, Oct 14, 2014 at 7:58 PM, Jose Granados Vergara <jose.granados@xxxxxx<mailto:jose.granados@xxxxxx>> wrote: This worked for me: something.c: #include "Python.h" int main() { Py_Initialize(); return 0; } ~$ g++ -I/usr/include/python2.7 something.c -o something -lpython2.7 -Jose ________________________________ De: Asif Sardar [engr.asif.sardar@xxxxxxxxxxxxxx<mailto:engr.asif.sardar@xxxxxxxxxxxxxx>] Enviado: martes, 14 de octubre de 2014 07:40 p.m. Para: ell-i-developers@xxxxxxxxxxxxx<mailto:ell-i-developers@xxxxxxxxxxxxx> CC: Lari Lehtomäki; Jose Granados Vergara Asunto: Fwd: Embedding python in emulator Hi, Has anybody embedded python in C/C++ application. My platform is 64-bit and python binaries I am using for Runtime/emulator is 32-bit. I have added following flags in CFLAGS and LDFLAGS to compile and link the c/c++ files in emulator with (#include </path/32-bit-python/include/python.h>) CFLAGS += -I/opt/pym32/bin/include/python2.7 -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes LDFLAGS += -L/opt/pym32/lib/python2.7/config -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic The files compiles but breaks when linking. Can anybody help with following errors: ----------------------- ./libsystem_stm32f4discovery.a(Register.o): In function `Register::GPIO_Callback_Python(std::string, std::string, unsigned int, std::string)': /home/asif/Ell-i-Working-Directory/Ell-i-Software-Development/Runtime/stm32/tests/robot_library/../../emulator/src/Register.cpp:41: undefined reference to `Py_Initialize' /home/asif/Ell-i-Working-Directory/Ell-i-Software-Development/Runtime/stm32/tests/robot_library/../../emulator/src/Register.cpp:43: undefined reference to `PyRun_SimpleStringFlags' /home/asif/Ell-i-Working-Directory/Ell-i-Software-Development/Runtime/stm32/tests/robot_library/../../emulator/src/Register.cpp:44: undefined reference to `Py_Finalize' /home/asif/Ell-i-Working-Directory/Ell-i-Software-Development/Runtime/stm32/tests/robot_library/../../emulator/src/Register.cpp:41: undefined reference to `Py_Initialize' /home/asif/Ell-i-Working-Directory/Ell-i-Software-Development/Runtime/stm32/tests/robot_library/../../emulator/src/Register.cpp:43: undefined reference to `PyRun_SimpleStringFlags' /home/asif/Ell-i-Working-Directory/Ell-i-Software-Development/Runtime/stm32/tests/robot_library/../../emulator/src/Register.cpp:44: undefined reference to `Py_Finalize' ./libsystem_stm32f4discovery.a(system_stm32f4xx.o): In function `__exchange_and_add': /usr/include/c++/4.8/ext/atomicity.h:49: undefined reference to `__atomic_fetch_add_4' /usr/include/c++/4.8/ext/atomicity.h:49: undefined reference to `__atomic_fetch_add_4' /usr/include/c++/4.8/ext/atomicity.h:49: undefined reference to `__atomic_fetch_add_4' /usr/include/c++/4.8/ext/atomicity.h:49: undefined reference to `__atomic_fetch_add_4' ----------------------- ---------- Forwarded message ---------- From: Asif Sardar <engr.asif.sardar@xxxxxxxxxxxxxx<mailto:engr.asif.sardar@xxxxxxxxxxxxxx>> Date: Mon, Oct 13, 2014 at 6:17 PM Subject: Embedding python in emulator To: Pekka Nikander <pekka.nikander@xxxxxx<mailto:pekka.nikander@xxxxxx>> Hi Pekka, I am trying to include python.h in emulator/inc/register.h I have to include cflags and ldflags in Makefile system of emulator e.g. -I/opt/include/python2.7 -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -L/opt/lib/python2.7/config -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic However, I am getting: ---------------------------------------------------- g++ -m32 -march=i386 -m32 -march=i386 -Xlinker -export-dynamic -o robot_library robot_library.o stm32f4discovery.o libSPI.a "-L." "-L/home/asif/Ell-i-Working-Directory/Ell-i-Software-Development/Runtime/stm32/tests/robot_library/../../variants/stm32f4discovery" "-lsystem_stm32f4discovery" -lstdc++ ./libsystem_stm32f4discovery.a(Register.o): In function `Register::GPIO_Callback_Python(std::string, std::string, unsigned int, std::string)': /home/asif/Ell-i-Working-Directory/Ell-i-Software-Development/Runtime/stm32/tests/robot_library/../../emulator/src/Register.cpp:41: undefined reference to `Py_Initialize' /home/asif/Ell-i-Working-Directory/Ell-i-Software-Development/Runtime/stm32/tests/robot_library/../../emulator/src/Register.cpp:43: undefined reference to `PyRun_SimpleStringFlags' /home/asif/Ell-i-Working-Directory/Ell-i-Software-Development/Runtime/stm32/tests/robot_library/../../emulator/src/Register.cpp:44: undefined reference to `Py_Finalize' /home/asif/Ell-i-Working-Directory/Ell-i-Software-Development/Runtime/stm32/tests/robot_library/../../emulator/src/Register.cpp:41: undefined reference to `Py_Initialize' /home/asif/Ell-i-Working-Directory/Ell-i-Software-Development/Runtime/stm32/tests/robot_library/../../emulator/src/Register.cpp:43: undefined reference to `PyRun_SimpleStringFlags' /home/asif/Ell-i-Working-Directory/Ell-i-Software-Development/Runtime/stm32/tests/robot_library/../../emulator/src/Register.cpp:44: undefined reference to `Py_Finalize' ./libsystem_stm32f4discovery.a(system_stm32f4xx.o): In function `__exchange_and_add': /usr/include/c++/4.8/ext/atomicity.h:49: undefined reference to `__atomic_fetch_add_4' /usr/include/c++/4.8/ext/atomicity.h:49: undefined reference to `__atomic_fetch_add_4' /usr/include/c++/4.8/ext/atomicity.h:49: undefined reference to `__atomic_fetch_add_4' /usr/include/c++/4.8/ext/atomicity.h:49: undefined reference to `__atomic_fetch_add_4' collect2: error: ld returned 1 exit status make[1]: *** [robot_library] Error 1 ----------------------------------- Can you help me in including these flags in the Makefile system and link the python with it? It will help a lot, to call from c to python independently. -- With Best Regards, Asif Sardar. +358 43 8265795<tel:%2B358%2043%208265795> -- With Best Regards, Asif Sardar. +358 43 8265795<tel:%2B358%2043%208265795> -- With Best Regards, Asif Sardar. +358 43 8265795