Externals: mudanças entre as edições
De Pontão Nós Digitais
Ir para navegaçãoIr para pesquisar
Sem resumo de edição |
Sem resumo de edição |
||
Linha 1: | Linha 1: | ||
Uma external é uma classe que não é construida no pd (geralmente em C ou C++), mas é carregada em tempo de execução. Uma vez carregada na memória do pd, externals não podem mais serem distinguidas de internals. | Uma external é uma classe que não é construida no pd (geralmente em C ou C++), mas é carregada em tempo de execução. Uma vez carregada na memória do pd, externals não podem mais serem distinguidas de internals. | ||
<br> | |||
= How To = | |||
Um bom guia para aprender a programar as externals é [http://iem.at/pd/externals-HOWTO/HOWTO-externals-en.html esse]. Está em ingles e não contem explicações de compilação, apenas codificação. | |||
<br> | |||
== Compilando == | |||
=== Linux === | |||
-- Testado no Ubuntu 11.04 | |||
#Escreva sua external ou use [https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk/externals/template/mycobject.c esse] exemplo. | |||
#$ mkdir _Library # substitua _Library pelo nome da sua biblioteca | |||
#$ mv path/to/your/external/* _Library/ | |||
#$ cd _Library | |||
#$ gedit Makefile # ou use o editor de sua preferencia no lugar do gedit | |||
#Copia tudo [https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk/externals/template/Makefile daqui] para o seu Makefile. (teoricamente esse makefile deveria servir para mac também, mas na pratica não deu certo aqui, alterações são necessárias)<br> | |||
#Na quarta linha, altere "template" para o nome da sua biblioteca (deve ser o mesmo de _Library) | |||
#Na nona linha, altere "mycobject.c" para o nome do seu codigofonte.c (você poderá adicionar mais arquivos e ainda adicionar SOURCE_LINUX=codigo.c por exemplo, para sources especificos para cada plataforma) | |||
#Salve e Feche. | |||
#$ make | |||
#Abra o pd. | |||
#File -> Path... -> New...<br> | |||
#Navegue até _Library e de OK. | |||
#Reinicie o PD e tente criar seu objeto.<br> | |||
<br> | |||
=== Mac OS X === | |||
-- Testado no Mac OS X 10.7 (Lion) com Xcode 4.1 | |||
#Abra o Xcode | |||
#Clique em "Create new Xcode project" | |||
#Na parte de Mac OS, clique em "Framework & Library" | |||
#Clique em "C/C++ Library" e next | |||
#Defina o nome do projeto, type: Dynamic | |||
#Selecione se projeto e clique em "Build Settings" | |||
#Altere: "Other linker flags": -undefined dynamic_lookup (parece ser necessário) | |||
#"Product Name": projectname | |||
#"Executable Prefix": não é necessário, delete o que tiver lá. | |||
#"Executable Extension": pd_darwin | |||
#Baixe [https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk/pd/src/m_pd.h este] arquivo. | |||
#Arraste esse arquivo para o seu projeto.<br> | |||
#Uma janela surgirá, marque "Copy itens into destinations Group's folder" e de OK. | |||
#File -> New -> New C File | |||
#Escreva sua external ou use [https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk/externals/template/mycobject.c esse] exemplo. | |||
#Command+B | |||
#Na pasta "Product" clique com o botão direito no arquivo .pd_darwin que tem lá e clique em "Show in Finder". | |||
#Copie esse arquivo para /Library/Pd | |||
#Abra o PD e crie seu objeto =) | |||
<br> | |||
<br> | |||
<br> | <br> | ||
To be continued... | To be continued... |
Edição das 01h06min de 27 de outubro de 2011
Uma external é uma classe que não é construida no pd (geralmente em C ou C++), mas é carregada em tempo de execução. Uma vez carregada na memória do pd, externals não podem mais serem distinguidas de internals.
How To
Um bom guia para aprender a programar as externals é esse. Está em ingles e não contem explicações de compilação, apenas codificação.
Compilando
Linux
-- Testado no Ubuntu 11.04
- Escreva sua external ou use esse exemplo.
- $ mkdir _Library # substitua _Library pelo nome da sua biblioteca
- $ mv path/to/your/external/* _Library/
- $ cd _Library
- $ gedit Makefile # ou use o editor de sua preferencia no lugar do gedit
- Copia tudo daqui para o seu Makefile. (teoricamente esse makefile deveria servir para mac também, mas na pratica não deu certo aqui, alterações são necessárias)
- Na quarta linha, altere "template" para o nome da sua biblioteca (deve ser o mesmo de _Library)
- Na nona linha, altere "mycobject.c" para o nome do seu codigofonte.c (você poderá adicionar mais arquivos e ainda adicionar SOURCE_LINUX=codigo.c por exemplo, para sources especificos para cada plataforma)
- Salve e Feche.
- $ make
- Abra o pd.
- File -> Path... -> New...
- Navegue até _Library e de OK.
- Reinicie o PD e tente criar seu objeto.
Mac OS X
-- Testado no Mac OS X 10.7 (Lion) com Xcode 4.1
- Abra o Xcode
- Clique em "Create new Xcode project"
- Na parte de Mac OS, clique em "Framework & Library"
- Clique em "C/C++ Library" e next
- Defina o nome do projeto, type: Dynamic
- Selecione se projeto e clique em "Build Settings"
- Altere: "Other linker flags": -undefined dynamic_lookup (parece ser necessário)
- "Product Name": projectname
- "Executable Prefix": não é necessário, delete o que tiver lá.
- "Executable Extension": pd_darwin
- Baixe este arquivo.
- Arraste esse arquivo para o seu projeto.
- Uma janela surgirá, marque "Copy itens into destinations Group's folder" e de OK.
- File -> New -> New C File
- Escreva sua external ou use esse exemplo.
- Command+B
- Na pasta "Product" clique com o botão direito no arquivo .pd_darwin que tem lá e clique em "Show in Finder".
- Copie esse arquivo para /Library/Pd
- Abra o PD e crie seu objeto =)
To be continued...