Skip to content

Compilation

Andrey Fedorov edited this page Nov 13, 2021 · 10 revisions

Compilation

glonassd written in C. Use Makefile for compilation.

make all for compile daemon + database library + terminals libraries
make glonassd for compile daemon only
make pg for compile database (PostgreSQL) library
make name for compile terminal name library

This project was compiled with gcc 6.3.0 for x86_64-linux-gnu.

Add Postgresql library (libpq-fe.h) to compilation

sudo apt-get install libpq-dev

In your *.c file:
#include <libpq-fe.h>

In your Makefile:
Add:
-I/usr/include/postgresql -lpq
to compilation parameters.

Add Redis library (hiredis.h) to compilation

cd /opt/glonassd (or your dir.)
git clone https://github.com/redis/hiredis.git
cd hiredis
make
sudo make install
sudo mkdir /usr/include/hiredis
sudo cp libhiredis.so /usr/lib/
sudo cp hiredis.h /usr/include/hiredis/
sudo cp read.h /usr/include/hiredis/
sudo cp sds.h /usr/include/hiredis/
sudo ldconfig

In your *.c file:
#include <hiredis/hiredis.h>

In your Makefile:
Add:
-I/usr/local/include/hiredis -lhiredis
to compilation parameters.

Add Oracle client library (ODPI-C) to compilation

Oracle Database Programming Interface for C (ODPI-C) help:

https://oracle.github.io/odpi/
https://oracle.github.io/odpi/doc/installation.html#id8

Install Oracle client from zip

https://oracle.github.io/odpi/doc/installation.html#id9

mkdir -p /opt/oracle
cd /opt/oracle
wget https://download.oracle.com/otn_software/linux/instantclient/214000/instantclient-basic-linux.x64-21.4.0.0.0dbru.zip
unzip instantclient-basic-linux.x64-21.4.0.0.0dbru.zip
sudo apt-get install libaio1
sudo sh -c "echo /opt/oracle/instantclient_21_4 > /etc/ld.so.conf.d/oracle-instantclient.conf"
sudo ldconfig
mkdir -p /opt/oracle/instantclient_21_4/network/admin
nano /opt/oracle/instantclient_21_4/network/admin/tnsnames.ora

ORABASE =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.x)(PORT = NNNN))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

cd /opt/glonassd

install ODPI-C

git clone https://github.com/oracle/odpi.git
cd odpi
make
sudo make install

installed to:
/usr/local/share/odpi
/usr/local/include/dpi.h

cd /opt/glonassd
rm -rf odpi

cd /opt/glonassd
make -B oracle

Modifi database settings in glonassd.conf
# database: Oracle
db_type=oracle
db_name=ORABASE
db_schema=
db_user=database_user
db_pass=database_user_password
# Next 2 parameters not used for connectivity, for log messages only:
db_host=192.168.1.x
db_port=NNNN