Search code examples
c++qtreed-solomon

How to use ezpwd reed-solomon error correction library


I want to generate QR codes, and for this I need Reed-Solomon error correction encode and decode (for future reading QR codes). I found this commercial library: https://github.com/pjkundert/ezpwd-reed-solomon and I want to try it. It's said that this library works with C++ and javascript, I want to use it under C++ QT. I downloaded source code from github, put ezpwd folder in my project and I try to use this sample code:

#include <QCoreApplication>
#include <ezpwd/rs>
#include <vector>
#include <stdint.h>

using namespace std;

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

vector<int8_t> data;


ezpwd::RS<255,251> rs;
rs.encode( data);

return a.exec();
}

But this error occurs:

dependent '..\reed_solomon_lib_test\rslib.h' does not exists

It is first time I see something like this, usually there should be some header .h and sourse .cpp files). I was searching for this rslib.h but there is no such file in directory that I downloaded from github. I think I don't know about step that everyone knows, something like build this library first. Please explain what should I do to use this library.


Solution

  • I couldn't reproduce your error but it seems like you forgot to remove rslib.h somewhere in your make- or projectfile.

    To use this library, simply copy the contents of the c++ folder on github to your project directory (you have an ezpwd folder containing C++11 standard inline code files). As these are ready to be used, you don't need to modify your make- or project file. Simply including #include <ezpwd/rs> as you do should work. It is probable that you need to add the line:

    QMAKE_CXXFLAGS += -std=c++11
    

    to your make- or project file to facilitate the use of the c++11 standard.