Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to retrieve Poco libraries version from inside a C++ program?

Do C++ Poco libraries have any macro or constant in the source code returning the current version of the library?

like image 681
Francesco Boi Avatar asked Dec 20 '25 03:12

Francesco Boi


1 Answers

The Poco::Environment class has a static member function libraryVersion():

#include "Poco/Environment.h"
#include "Poco/Format.h"

// ... 

std::string version = Poco::format("%d.%d.%d",
    static_cast<int>(Poco::Environment::libraryVersion() >> 24),
    static_cast<int>((Poco::Environment::libraryVersion() >> 16) & 0xFF),
    static_cast<int>((Poco::Environment::libraryVersion() >> 8) & 0xFF));

The value is taken from the POCO_VERSION macro in Poco/Version.h:

// Version format is 0xAABBCCDD, where
//    - AA is the major version number,
//    - BB is the minor version number,
//    - CC is the patch version number, and
//    - DD is the pre-release designation/number.
//      The pre-release designation hex digits have a special meaning:
//      00: final/stable releases
//      Dx: development releases
//      Ax: alpha releases
//      Bx: beta releases
//
#define POCO_VERSION 0x01090000
like image 121
Günter Obiltschnig Avatar answered Dec 24 '25 07:12

Günter Obiltschnig