Support Questions

Find answers, ask questions, and share your expertise

How to compile minifi C++ on Raspberry pi 3

New Contributor

I'm trying to compile MiniFi C++ with RocksDB Enabled on Raspberry PI 3 running Raspbian .

During compile stage everything was done without error, but in linked stage I got following error messages :

[ 29%] Built target minifi-http-curl
[ 29%] Built target example
[ 29%] Built target minificontroller
[ 30%] Built target minifi-rocksdb-repos
[ 30%] Built target build_version
[ 60%] Built target rocksdb
[ 62%] Built target minifi-archive-extensions
[ 77%] Built target archive
[ 93%] Built target archive_static
[ 93%] Built target minifi-python-extensions
[ 94%] Built target minifi-script-extensions
[ 94%] Linking CXX executable minifi
/usr/bin/ld: warning: libssl.so.1.0.2, needed by /usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/libcurl.so, may conflict with libssl.so.1.1
/usr/bin/ld: warning: libssl.so.1.0.2, needed by /usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/libcurl.so, may conflict with libssl.so.1.1
/usr/bin/ld: warning: libcrypto.so.1.0.2, needed by /usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/libcurl.so, may conflict with libcrypto.so.1.1
/usr/bin/ld: warning: libcrypto.so.1.0.2, needed by /usr/lib/gcc/arm-linux-gnueabihf/6/../../../arm-linux-gnueabihf/libcurl.so, may conflict with libcrypto.so.1.1
../extensions/rocksdb-repos/libminifi-rocksdb-repos.a(DatabaseContentRepository.cpp.o):(.data.rel.ro._ZTIN3org6apache4nifi6minifi4core10repository14StringAppenderE[_ZTIN3org6apache4nifi6minifi4core10repository14StringAppenderE]+0x8): undefined reference to `typeinfo for rocksdb::AssociativeMergeOperator'
collect2: error: ld returned 1 exit status
main/CMakeFiles/minifiexe.dir/build.make:121: recipe for target 'main/minifi' failed
make[2]: *** [main/minifi] Error 1
CMakeFiles/Makefile2:3804: recipe for target 'main/CMakeFiles/minifiexe.dir/all' failed
make[1]: *** [main/CMakeFiles/minifiexe.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make: *** [all] Error 2


Disable Rocksdb ,can get success result , but only Volatile repository can be used.

1 REPLY 1

Super Guru

See my article: https://community.hortonworks.com/articles/167193/building-and-running-minifi-cpp-in-orangepi-zero.h...

Make sure you have the correct lib for rocksdb and then reboot

see also: https://groups.google.com/forum/#!topic/mongo-rocks/8kUwh9KQ6qk

see: https://github.com/amjuarez/bytecoin/issues/148

  1. git clone https://github.com/apache/nifi-minifi-cpp.git
  2. apt-get install cmake \
  3. gcc g++ \
  4. bison \
  5. flex \
  6. libcurl-dev \
  7. librocksdb-dev librocksdb4.1 \
  8. uuid-dev uuid \
  9. libboost-all-dev libssl-dev \
  10. libbz2-dev liblzma-dev \
  11. doxygen -y
  12. apt-get install -y libleveldb-dev
  13. apt-get install -y libxml2
  14. apt-get install libpython3-dev -y
  15. apt-get install liblua5.1-0-dev -y
  16. apt-get install libusb-1.0.0-0-dev libpng12-dev -y
  17. apt-get install docker.io python-virtualenv -y
  18. apt-get install libpython3-dev -y
  19. apt-get install libgps-dev -y
  20. apt-get install libpcap-dev -y
  21. apt-get install cmake gcc g++ bison flex -y
  22. ./bootstrap.sh
  23. interactive UI
  24. cd nifi-minifi-cpp-0.3.0-source/
  25. mkdir build
  26. cd build
  27. cmake ..
  28. make
  29. make package
  30. apt-get install libssl-dev
Take a Tour of the Community
Don't have an account?
Your experience may be limited. Sign in to explore more.