SIGAR >> es una librería en C para leer información del sistema (uso del CPU, RAM, etc.)en distintas plataformas con una única API – ya que en general este tipo de operaciones son extremadamente dependientes del S.O. subyacente.

Tiene ports para java, php, ruby, etc. en este caso necesito usarla en una app C++ sobre Linux (Debian Wheezy), tomé las siguientes notas al instalarlo.

  1. hay que poner la ruta de los headers en el include path -I…/sigar-bin/include
  2. hay que poner la ruta de las librerías en el search path -L…/sigar-bin/lib
    o hay que copiar la librería libsigar-amd64-linux.so en /usr/local/lib
  3. hay que especificarle la librería compartida al linker-lsigar-amd64-linux

Sin embargo, ésto no es suficiente pues al compilar escupe (al respecto >>)

undefined reference to `dlsym', `dlopen' y `dlclose'

para solucionar ésto hay que pasarle al linker el flag -ldl

Con ésto ya compila pero en tiempo de ejecución tira

libsigar-amd64-linux.so: cannot open shared object file: No such file or directory

ésto es porque, a pesar que dejamos la .so en el directorio de inclusión, no hemos ejecutado

sudo ldconfig

para que tome >>.


Aquí hay un ejemplo de cómo usarla en C++, de donde destacamos la forma de leer del CPU pues los métodos limit no funcionan >>>

Este sitio utiliza cookies.    Leer más
Privacidad