The easiest way to write your first program using YARP is with CMake.
Make a directory called hello
, and within it put a CMakeLists.txt
file like this:
# Copyright (C) 2006-2020 Istituto Italiano di Tecnologia (IIT)
# Copyright (C) 2006-2010 RobotCub Consortium
# All rights reserved.
#
# This software may be modified and distributed under the terms of the
# BSD-3-Clause license. See the accompanying LICENSE file for details.
# YARP needs CMake 3.0 or greater
cmake_minimum_required(VERSION 3.12)
# find YARP
find_package(YARP COMPONENTS os REQUIRED)
# set up our program
add_executable(hello)
# declare our source files
target_sources(hello PRIVATE hello.cpp)
# link with YARP libraries
target_link_libraries(hello PRIVATE YARP::YARP_os
YARP::YARP_init)
And here's a simple test program, call it hello.cpp
#include <stdio.h>
int main(
int argc,
char *argv[]) {
bool ok = inPort.
open(
"/hello/in");
ok = ok && outPort.
open(
"/hello/out");
if (!ok) {
fprintf(stderr, "Failed to create ports.\n");
fprintf(stderr, "Maybe you need to start a nameserver (run 'yarpserver')\n");
return 1;
}
for (int i=0; i<10; i++) {
printf(
"Sending %s\n", out.
toString().c_str());
if (in==NULL) {
fprintf(stderr, "Failed to read message\n");
return 1;
}
printf(
"Received %s\n", in->
toString().c_str());
}
return 0;
}
Now make a build
directory inside the hello
folder, then from the build directory run CMake (see Using CMake), and compile!
This example is available in the example/cmake/hello
directory of the YARP source code.