Setting up (C++)
To start working with openDAQ™, the requisite binaries are required. They can be obtained at the openDAQ™ documentation and releases webpage. The binaries are currently available for Windows and Ubuntu (20.04 or newer).
| While openDAQ™ can be built from source, we recommend using the pre-compiled binaries for new users. | 
- 
Windows
 - 
Linux
 
To install openDAQ™, download the opendaq-1.0.0-win64.exe installer, run it, and follow its instructions. Make sure
to add openDAQ™ to the system path to be able to run openDAQ™ application examples.
We recommend using the default installation path to avoid issues requiring additional environment variable modifications and troubleshooting.
To install openDAQ™ on Ubuntu 20.04 or newer, download the opendaq-1.0.0-ubuntu20.04-x86_64.deb Debian package. Install it
using the following command:
sudo apt install ./opendaq-1.0.0-ubuntu20.04-x86_64.deb
Creating an openDAQ™ project
We start our project from the "quick_start_app" example that can be found at the
openDAQ™ documentation and releases webpage. Download the examples.zip
archive and extract it to a folder of choice.
Requirements
- 
Windows
 - 
Linux
 
- 
CMake (3.20 or newer)
 - 
CMake generator and C++ compiler (Visual Studio 2022 is recommended)
 
- 
CMake (3.20 or newer)
 - 
CMake generator and C++ compiler (g++ is recommended)
 
Run sudo apt install cmake build-essential to install the required tools.
 | 
Building the project
To build the project, navigate to the cpp/quick_start directory and enter the following command
into a terminal or command prompt instance:
cmake -DCMAKE_BUILD_TYPE=Release -Bbuild .
With this, we are ready to start developing. We fill in our quick_start_empty.cpp executable code as follows:
#include <opendaq/opendaq.h>
#include <iostream>
#include <thread>
int main(int argc, const char* argv[])
{
    // Create a fresh openDAQ(TM) instance, which acts as the entry point into our application
    daq::InstancePtr instance = daq::Instance(MODULE_PATH);
    std::cout << "Press \"enter\" to exit the application..." << std::endl;
    std::cin.get();
    return 0;
}
When creating the openDAQ™ instance, we need to specify the root directory of our openDAQ™ Modules.
Conveniently, the CMake configuration pre-filled the correct directory into the MODULE_PATH macro definition.
We now compile and run our program.
- 
Windows
 - 
Linux
 
cd build
cmake --build . --config Release
cd Release
quick_start_empty.exe
cd build
cmake --build .
./quick_start_empty
If you managed to reach this point, you have successfully created your first openDAQ™ project! To find out more about using openDAQ™ applications to connect to, configure, and read data of Devices, continue with the openDAQ™ application quick start guide.
Troubleshooting
- 
Windows
 - 
Linux
 
- 
If, when running a CMake command, the following error is displayed: "`cmake` is not recognized as an internal or external command, operable program or batch file.", make sure that CMake is added to the
PATHenvironment variable. - 
If openDAQ™ is not found when running CMake, create a new environment variable named
openDAQ_ROOT, with its value being the directory where openDAQ™ is installed. - 
If the
.dllshared libraries are not found when running the above example, add theopenDAQ/binfolder path to thePATHenvironment variable. Thebinfolder is located within the openDAQ™ installation folder. - 
If no devices are found when discovering devices, check the
MODULE_PATHvariable if it points to the folder where modules are located. This is usuallyc:\Program Files\openDAQ\bin\modules. If not, replace theMODULE_PATHwith folder string. 
- 
If the
cmakecommand is not found, make sure that thecmakeexecutable is located in a folder that is included in yourPATHenvironment variable. - 
If openDAQ™ is not found when running CMake, export the
openDAQ_ROOTvariable to point at/opt/opendaq(export openDAQ_ROOT=/opt/opendaq). - 
If the
.soshared libraries are not found when running the above example, add/opt/opendaq/libto theLD_LIBRARY_PATHenvironment variable (export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/opendaq/lib) - 
If no devices are found when discovering devices, check the
MODULE_PATHvariable if it points to the folder where modules are located. This is usuallyopt/opendaq/lib/modules. If not, replace theMODULE_PATHwith folder string.