[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