YARP  2.3.68+230-20170426.1+git4c562a6
Yet Another Robot Platform
Compiling a YARP hello world program

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) 2010 RobotCub Consortium
# Author: Paul Fitzpatrick
# CopyPolicy: Released under the terms of the LGPLv2.1 or later, see LGPL.TXT
# YARP needs CMake 2.8.9 or greater
cmake_minimum_required(VERSION 2.8.9)
# find YARP
find_package(YARP REQUIRED)
# add YARP include directories
include_directories(${YARP_INCLUDE_DIRS})
# set up our program
add_executable(hello hello.cpp)
# link with YARP libraries
target_link_libraries(hello ${YARP_LIBRARIES})

And here's a simple test program, call it "hello.cpp"

/*
* Copyright: (C) 2010 RobotCub Consortium
* Author: Paul Fitzpatrick
* CopyPolicy: Released under the terms of the LGPLv2.1 or later, see LGPL.TXT
*/
#include <yarp/os/all.h>
#include <stdio.h>
using namespace yarp::os;
int main(int argc, char *argv[]) {
// Set up YARP
Network yarp;
// Make two ports called /hello/in and /hello/out
// We'll send "Bottles" (a simple nested list container) between these ports
BufferedPort<Bottle> inPort, outPort;
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;
}
// Make a connection between the output port and the input port
yarp.connect(outPort.getName(),inPort.getName());
for (int i=0; i<10; i++) {
// prepare a message to send
Bottle&out = outPort.prepare();
out.clear();
out.addString("Hello");
out.addInt(i);
printf("Sending %s\n", out.toString().c_str());
// send the message
outPort.write(true);
// read the message
Bottle *in = inPort.read();
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. See example/cmake/with_opencv for an example of compiling YARP with OpenCV.