Configurando addon example, openframeworks - Code::Blocks Versão 11jun2012, por Fabrício Silva Vamos usar como exemplo o addon Box2D, uma biblioteca de física. A versão utilizada do OF é a 0071 e Codeblocks 10.05. A figura acima mostra os arquivos que vieram com o addon. A primeira pasta, addon, contem os arquivos do addon Box2D e seu conteúdo deve ser movido para a pasta addons da raiz do OF. Já as outras pastas são exemplos. Escolhendo aleatoriamente, vamos configurar o exemplo ofxbox2dexample. 1. Abra o Codeblocks e crie um novo projeto em C++ (Console application) com o nome do exemplo. Ele deve ser salvo na pasta onde ficam os exemplos dos addons do OF. No meu caso a pasta é of_v0071_win_cb_release\examples\addons e o nome do projeto ofxbox2d. 2. Exclua o arquivo main.cpp do projeto, e se preferir do computador também. 3. Volte para a pasta que foi baixada com o addon, dentro do diretório do exemplo copie a pasta src. O padrão estabelece que ela contem três arquivos de nome main.cpp, testapp.cpp e testapp.h. Confira se eles estão lá.
4. Retorne para a pasta do projeto e cole a pasta src lá. 5. No Codeblocks, no menu Project Add files selecione os três arquivos da pasta src. Na caixa de diálogo que abrir verifique se Debug e Release estão marcados e clique em ok. 6. Adicione os arquivos do addon pelo menu Project - Add files recursively. Neste tutorial os arquivos ficam em of_v0071_win_cb_release\addons\ofxbox2d. Uma caixa de diálogo aparecerá com vários arquivos selecionados, apenas clique em OK. Confira se Debug e Release também estão selecionados e OK novamente. 7. Acesse agora Project Build Options. Essa parte é um pouco confusa. São as configurações necessárias para que o Codeblocks relacione as bibliotecas com o projeto do exemplo. A. Adicione o texto abaixo (copiar e colar na caixa de diálogo add library) em linker settings do projeto. Confira a figura...\..\..\libs\freeimage\lib\win_cb\freeimage.lib;..\..\..\libs\rtaudio\lib\win_cb\librtaudio.a;..\..\..\libs\quicktime\lib\win_cb\qtmlclient.lib;..\..\..\libs\cairo\lib\win_cb\libcairo.a;..\..\..\libs\cairo\lib\win_cb\libpixman-1.a;..\..\..\libs\freetype\lib\win_cb\libfreetype.a;..\..\..\libs\glut\lib\win_cb\libglut.a;..\..\..\libs\videoinput\lib\win_cb\videoinputlib.a;..\..\..\libs\fmodex\lib\win_cb\libfmodex.a;..\..\..\libs\glew\lib\win_cb\glew32s.lib;..\..\..\libs\glu\lib\win_cb\glu32.lib;..\..\..\libs\poco\lib\win_cb\libpoconet.a;..\..\..\libs\poco\lib\win_cb\libpocoutil.a;..\..\..\libs\poco\lib\win_cb\libpocoxml.a;..\..\..\libs\poco\lib\win_cb\libpocofoundation.a;..\..\..\libs\tess2\lib\win_cb\libtess2.a; opengl32; gdi32; msimg32; glu32; dsound; winmm; dxguid; strmbase; strmiids; z; uuid; ole32; oleaut32; setupapi; wsock32; ws2_32; Iphlpapi; Comdlg32;..\..\..\libs\openFrameworksCompiled\lib\win_cb\openFrameworks.lib;..\..\..\libs\openFrameworksCompiled\lib\win_cb\openFrameworksDebug.lib;
B. Adicione, um por um, os diretórios das bibliotecas do OF. Confira o resultado:
..\..\..\libs\openframeworks..\..\..\libs\openframeworks\utils
..\..\..\libs\glew\include..\..\..\libs\glu\include..\..\..\libs\poco\include..\..\..\libs\tess2\include..\..\..\libs\openframeworks\types..\..\..\libs\openframeworks\events..\..\..\libs\openframeworks\math..\..\..\libs\openframeworks\3d..\..\..\libs\openframeworks\gl..\..\..\libs\openframeworks\graphics..\..\..\libs\cairo\include\cairo..\..\..\libs\openframeworks\communication..\..\..\libs\openframeworks\app..\..\..\libs\openframeworks\video..\..\..\libs\openframeworks\sound..\..\..\libs\fmodex\include..\..\..\libs\videoinput\include..\..\..\libs\quicktime\include Será necessário adicionar outras bibliotecas também, de acordo com os addons utilizados. Geralmente são os diretórios que contém arquivos de cabeçalho ou código(*.h e/ou *.cpp). Nesse exemplo ele só usa o Box 2D, logo os outros diretórios adicionados foram:..\..\..\addons\ofxbox2d\src..\..\..\addons\ofxbox2d\libs\box2d..\..\..\addons\ofxbox2d\libs\box2d\common..\..\..\addons\ofxbox2d\libs\box2d\collision..\..\..\addons\ofxbox2d\libs\box2d\collision\shapes..\..\..\addons\ofxbox2d\libs\box2d\dynamics\..\..\..\addons\ofxbox2d\libs\box2d\dynamics\contacts..\..\..\addons\ofxbox2d\libs\box2d\dynamics\joints..\..\..\addons\ofxbox2d\libs\triangle
Resultado final:
C. Relacione as bibliotecas de Debug e Release. Em debug adicione:..\..\..\libs\openframeworkscompiled\lib\win_cb\openframeworksdebug.lib Em release adicione:..\..\..\libs\openframeworkscompiled\lib\win_cb\openframeworks.lib É provável que o exemplo rode corretamente agora!
ERROS COMUNS: Nesse erro ele não conseguiu achar o arquivo b2contact.h. Esse arquivo está dentro da pasta do addon, em of_v0071_win_cb_release\addons\ofxbox2d\libs\box2d\dynamics\contacts. Certamente esse diretório não foi adicionado nas configurações de build do projeto, em search directories. Adicione e verá que o erro não ocorrerá novamente. o mesmo vale para outros arquivos que não foram encontrados.