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.
- hay que poner la ruta de los headers en el include path -I…/sigar-bin/include
- 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 - 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 >>>