[R-br] [Dúvida] Invocar funções C++ no R
Pedro Rafael
pedro.rafael.marinho em gmail.com
Quinta Agosto 25 16:37:45 BRT 2011
Sim Benilton gerei o arquivo .so com o comando gcc -shared -o arquivo.so
arquivo.o. O arquivo.c está localizado na pasta C:\MinGW\bin. Instalei o
compilador MinGW!. Primeiramente gerei o executável e o arquivo .o, ou seja,
arquivo.exe e arquivo.o. Para gerar os arquivos fui no terminal do Windows e
caminhei até o diretório C:\MinGW\bin. Aí pude dar os dois comando: gcc -c
arquivo.c e depois fiz gcc -shared -o arquivo.so arquivo.o. Pronto, o
arquivo com extensão .SO foi gerado. Depois disso fui no R e mandei ele
setar o diretório do arquivo.so que é C:\MinGW\bin, com o comando
setwd('C:\\MinGW\\bin'). Depois para mim o que resta é ler o arquivo.so no
R. Logo fiz o que segue abaixo e o erro ocorreu.
> dyn.load("teste.so")
Erro em inDL(x, as.logical(local), as.logical(now), ...) :
impossível carregar objeto compartilhado 'C:/MinGW/bin/teste.so':
LoadLibrary failure: %1 não é um aplicativo Win32 válido.
O conteúdo do arquivo.c é bem simples só fiz para testar e está logo abaixo:
/*
Programa: exfun.c
Objetivo; Primeiro exemplo de uso de funcao
Autor: Adriano Cruz
Data: 12/10/97
*/
#include<stdio.h>
/* Prototipo da funcao */
int soma(int, int);
/* Funcao Principal */
int main()
{
int a=5, b=9;
printf("\n%d", soma(a,b));
getch();
return 0;
}
/* Definicao da funcao */
int soma(int a, int b)
{
return a+b;
}
Em 25 de agosto de 2011 15:54, beniltoncarvalho [via R-br] <
ml-node+3769122-1021070905-223914 em n4.nabble.com> escreveu:
> qual eh o caminho onde esta o teste.so?
>
> como vc gerou o teste.so?
>
> qual o conteudo do seu teste.c?
>
> e qual eh o resultado de getwd() dentro do R?
>
> b
> _______________________________________________
> R-br mailing list
> [hidden email] <http://user/SendEmail.jtp?type=node&node=3769122&i=0>
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
> código mínimo reproduzível.
>
>
> ------------------------------
> If you reply to this email, your message will be added to the discussion
> below:
>
> http://r-br.2285057.n4.nabble.com/R-br-Duvida-Invocar-funcoes-C-no-R-tp3768159p3769122.html
> To unsubscribe from R-br, click here<http://r-br.2285057.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=3357982&code=cGVkcm8ucmFmYWVsLm1hcmluaG9AZ21haWwuY29tfDMzNTc5ODJ8NTAyMjI0MDYw>.
>
>
--
Saudações,
Pedro Rafael Diniz Marinho.
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20110825/f6470755/attachment.html>
Mais detalhes sobre a lista de discussão R-br