5. Building and Running Your Service Natively
The next step in the binder development process is to build your binder and run it using your native Linux system.
NOTE: This section assumes using the
and completion of the previous steps in this
“Building Microservices Natively”
Building the Service
Move to the cloned
helloworld-service repository and build the service
using either of the following methods:
$ cd helloworld-service $ ./conf.d/autobuild/linux/autobuild package
$ cd helloworld-service $ mkdir build $ cd build $ cmake .. $ make
Running the Service
You use the Application Framework Binder Daemon (
bind one instance of an application or service to the rest of the system.
In this example, you are binding an instance of
to the rest of the system:
$ afb-daemon --binding helloworld.so --port 3333 --token ''
The previous command starts
afb-daemon and loads the
The daemon is now listening on port 3333 of the
Testing the Service
Refer to the AGL Test Framework section of the “APIs & Services” documentation you can test your
helloworld-service binding with the
Have a look to the generic example of how to launch the tests suite here and know how to test your helloworld binding instance.
Using Optional Tools
Once you have built and run your micro-service successfully using your native Linux system, you should consider using some additional development tools: X(Cross) Development System (XDS) and the Controller Area Network (CAN) Development Studio (CANdevStudio).
XDS: Cross-compiles and ports your AGL image to your target hardware. For information on XDS, see the “X(cross) Development System: User’s Guide” section.
CANdevStudio: Simulates CAN signals such as ignition status, doors status, or reverse gear by every automotive developer. For information on CANdevStudio, see the “CANdevStudio Quickstart” section.
systemd and/or libmicrohttpd
If you encounter an error message similar to the following,
you need to make some changes to your
-- Checking for module 'libmicrohttpd>=0.9.60' -- No package 'libmicrohttpd' found CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:415 (message): A required package was not found Call Stack (most recent call first): /usr/share/cmake/Modules/FindPkgConfig.cmake:593 (_pkg_check_modules_internal) conf.d/app-templates/cmake/cmake.d/01-build_options.cmake:92 (PKG_CHECK_MODULES) conf.d/app-templates/cmake/common.cmake:77 (include) conf.d/cmake/config.cmake:184 (include) CMakeLists.txt:3 (include)
config.cmake file located in
and add a hash character (i.e. #) to the beginning of the “libsystemd>=222”
and “libmicrohttpd>=0.9.60” strings.
Following is an example of the edits:
set (PKG_REQUIRED_LIST json-c #libsystemd>=222 afb-daemon #libmicrohttpd>=0.9.60 )
After making these changes, rebuild the service again as described in the “Building the Service” section previously on this page.