sexta-feira, 6 de maio de 2011

Gearbox

Primeiramente faça o download do fonte do pacote e descompacte:
$ wget http://sourceforge.net/projects/gearbox/files/gearbox/9.11/gearbox-9.11.tar.gz
$ tar -zxvf gearbox-9.11.tar.gz

Instale as dependências do Gearbox:
$ sudo apt-get install libboost-python-dev libzeroc-ice33-dev

Por causa de um problema com os nomes dos arquivos o cmake não irá localizar uma das libs que acabamos de instalar (libboost_python-mt-py27.so), então basta criar um link simbólico para resolver o problema:
$ sudo ln -s /usr/lib/libboost_python-mt-py27.so /usr/lib/libboost_python-mt.so

Mude para o diretório do Gearbox:
$ cd gearbox-9.11

Crie um diretório para a versão final do pacote e mude para ele:
$ mkdir build
$ cd build

Agora vamos configurar, compilar e instalar o pacote:
$ cmake ..
$ make
$ sudo make install

Devemos acrescentar o path das libs do Gearbox ao arquivo ld.so.conf para que seja possível a sua localização automática. Para isso acrescente o texto /usr/local/lib/gearbox em uma nova linha do arquivo.

$ sudo gedit /etc/ld.so.conf

Recarregue o arquivo para que as alterações sejam consideradas:
$ sudo ldconfig

Além disso é necessário corrigir alguns arquivos de configuração. A compilação não chega a criar todos os arquivos necessários e alguns apresentam um erro de sintaxe que compromete a resposta do comando pkg-config.

Acesse o diretório onde estão as informações para o pkg-config
$ cd /usr/local/lib/pkgconfig

Substitua o ponto-e-virgula por um espaço nas entradas “Requires” dos arquivos: GbxGarminAcfr.pc, GbxNovatelAcfr.pc, GbxSickAcfr.pc e GbxSmartBatteryAcfr.pc, separando as dependências que a lib em questão possui.
$ sudo gedit GbxGarminAcfr.pc GbxNovatelAcfr.pc GbxSickAcfr.pc GbxSmartBatteryAcfr.pc

Agora vamos criar os arquivos que estão faltando:
$  sudo gedit GbxIceUtilAcfr.pc GbxLockFileAcfr.pc GbxNovatelUtilAcfr.pc GbxSerialDeviceAcfr.pc GbxUtilAcfr.pc

Os conteúdos serão, respectivamente:
Name: GbxIceUtilAcfr
Description: Part of GearBox.
Version: 1.0.0
Requires:
Libs: -L/usr/local/lib/gearbox  -lGbxIceUtilAcfr 
Cflags: -I/usr/local/include/gearbox

Name: GbxLockFileAcfr
Description: Part of GearBox.
Version: 1.0.0
Requires:
Libs: -L/usr/local/lib/gearbox  -lGbxLockFileAcfr 
Cflags: -I/usr/local/include/gearbox

Name: GbxNovatelUtilAcfr
Description: Part of GearBox.
Version: 1.0.0
Requires:
Libs: -L/usr/local/lib/gearbox  -lGbxNovatelUtilAcfr 
Cflags: -I/usr/local/include/gearbox

Name: GbxSerialDeviceAcfr
Description: Part of GearBox.
Version: 1.0.0
Requires:
Libs: -L/usr/local/lib/gearbox  -lGbxSerialDeviceAcfr 
Cflags: -I/usr/local/include/gearbox

Name: GbxUtilAcfr
Description: Part of GearBox.
Version: 1.0.0
Requires:
Libs: -L/usr/local/lib/gearbox  -lGbxUtilAcfr 
Cflags: -I/usr/local/include/gearbox
Salve todos os arquivos e verifique se está tudo correto, digitando:
$ pkg-config --libs flexiport Gbx* hokuyo_aist

Espera-se que o resultado seja algo parecido com (mesmo que em ordem diferente):
-L/usr/local/lib/gearbox -lGbxGarminAcfr -lGbxNovatelAcfr -lGbxNovatelUtilAcfr -lGbxSickAcfr -lGbxIceUtilAcfr -lGbxSerialDeviceAcfr -lGbxSmartBatteryAcfr -lGbxSerialAcfr -lGbxLockFileAcfr -lGbxUtilAcfr -lhokuyo_aist -lflexiport

Para outras informações visite o site do projeto em http://gearbox.sourceforge.net/

That's it! =)

Um comentário:

dddd disse...

Valeu pelo tutorial, Leandro.