Tentando ler função C

Boa tarde, estou tentando reproduzir os passos deste artigo: http://www.jstatsoft.org/v40/i06 (os codigos se encontram no MSGJR.zip), porém eles são para Linux e eu estou no Windows. No artigo os autores falam: Second, we load the package, the data set and the complied C function MSGJR.c (under Linux, use dyn.load("MSGJR.dll") under Windows) Porem não estou tendo muito sucesso nessa adaptação. A mensagem de erro que obtive foi a seguinte (reproduzindo apenas a primeira parte do codigo, acredito que resolvendo isso o restante funciona):
rm(list = ls()) options(digits = 4, max.print = 1000, width = 120, prompt = "> ") setwd('F:\\Econometria II\\Bla') library("DEoptim") data("SMI") system("R CMD SHLIB MSGJRS.c") Mensagens de aviso perdidas: execução do comando 'R CMD SHLIB MSGJRS.c' teve status 1 dyn.load("MSGJRS.so") Erro em inDL(x, as.logical(local), as.logical(now), ...) : impossível carregar objeto compartilhado 'F:/Econometria II/Bla/MSGJRS.so': LoadLibrary failure: Não foi possível encontrar o módulo especificado. dyn.load("MSGJRS.dll") Erro em inDL(x, as.logical(local), as.logical(now), ...) : impossível carregar objeto compartilhado 'F:/Econometria II/Bla/MSGJRS.dll': LoadLibrary failure: Não foi possível encontrar o módulo especificado.
Alguem sabe como resolver isso? []'s

Voce precisa: 1) Instalar o RTools 2) Na linha de comando do seu Windows, digitar: Rcmd SHLIB MSGJRS.c 3) Observar q o comando acima gerou a DLL 4) Fazer o dyn.load() da DLL gerada. b

Benilton, Onde que cria a DLL? Pelo menos aqui nao apareceu na mesma pasta que o .c []'s 2012/1/19 Benilton Carvalho <beniltoncarvalho@gmail.com>
Voce precisa:
1) Instalar o RTools 2) Na linha de comando do seu Windows, digitar:
Rcmd SHLIB MSGJRS.c
3) Observar q o comando acima gerou a DLL 4) Fazer o dyn.load() da DLL gerada.
b _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br 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.

Que passos voce seguiu? E que comandos (e onde) vc executou? Descreva com detalhes, assim fica melhor de ajudar.

Os passos que eu fiz foram: 1) Fiz a instalação padrão do rtools, a versão 215 (Aqui tenho o r 2.13.1, 32bits) 2) Dei win+r e abri o prompt do DOS (cmd) 3) Fui até a pasta do Rcmd (cd c:\users\rcoster\desktop\r\bin\i386) 4) digitei Rcmd SHLIB MSGJRS.c - Não deu mensagem de erro, mas a DLL também nao apareceu. O que estou fazendo errado? []'s 2012/1/19 Benilton Carvalho <beniltoncarvalho@gmail.com>
Adicionalmente, seu R e' em 32 ou 64 bits? _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br 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.

Tem certeza de que o aquivo MSGJRS.c esta' no diretorio c:\users\rcoster\desktop\r\bin\i386 ? No passo 3, ao inves de ir para o diretorio no qual vc instalou o R, vc deveria ir ao diretorio que contem o arquivo a ser compilado.... Alem disso, estou deveras surpreso por nao haver nenhuma mensagem apos a execucao do comando sugerido. b

Sim, o arquivo .c está nessa pasta também. Ja tentei ir para outras pastar em que eu também tinha colocado o .c, porem ele dava mensagem de erro falando que 'Rcmd' nao era um comando válido. Quanto a mensagem, realmente não apareceu nenhuma após o comando. []'s 2012/1/19 Benilton Carvalho <beniltoncarvalho@gmail.com>
Tem certeza de que o aquivo MSGJRS.c esta' no diretorio c:\users\rcoster\desktop\r\bin\i386 ?
No passo 3, ao inves de ir para o diretorio no qual vc instalou o R, vc deveria ir ao diretorio que contem o arquivo a ser compilado....
Alem disso, estou deveras surpreso por nao haver nenhuma mensagem apos a execucao do comando sugerido.
b _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br 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.

Ahhhh ai' esta' a mensagem.... (note que e' importante descrever tudo o q acontece no seu terminal, pq a Luiza levou minha bola de cristal) Entao, em algum momento no passado, foi mudado o esquema no RTools... Ao inves do comando que sugeri inicialmente, tente o q os autores recomendam: R CMD SHLIB MSGJRS.c b

Benilton, agora apareceu essa mensagem: ARGUMENT 'cmd' __ignored__ ARGUMENT 'shlib' __ignored__ ARGUMENT 'MSGJRS.c' __ignored__ Após isso, abriu o R no prompt. Eu consegui rodar o comando system no R especificando a pasta (system("F:\\Econometria II\\Bla\\R CMD SHLIB MSGJRS.c")), porem também nao criou a dll (e também nao deu mensagem nenhuma) (Deu sorte que a Luiza antecipou a volta, imagina só ficar mais tempo sem a bola de cristal!) []'s 2012/1/19 Benilton Carvalho <beniltoncarvalho@gmail.com>
Ahhhh ai' esta' a mensagem.... (note que e' importante descrever tudo o q acontece no seu terminal, pq a Luiza levou minha bola de cristal)
Entao, em algum momento no passado, foi mudado o esquema no RTools... Ao inves do comando que sugeri inicialmente, tente o q os autores recomendam:
R CMD SHLIB MSGJRS.c
b _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br 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.

Tenta com letras maiusculas (o erro retornado sugere q foram usadas letras minusculas) R CMD SHLIB MSGJRS.c

Agora nao da nenhuma mensagem, nem a dll. 2012/1/19 Benilton Carvalho <beniltoncarvalho@gmail.com>
Tenta com letras maiusculas (o erro retornado sugere q foram usadas letras minusculas)
R CMD SHLIB MSGJRS.c _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br 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.

Se a minha ultima sugestao nao funcionar, tente (ainda no terminal do Windows, nao no R) executar o seguinte: ls e, depois: gcc --version Avise-nos dos resultados. Se estes comandos nao funcionarem, e' sinal de que a instalacao do RTools nao foi completada (voce talvez nao tenha atualizado a variavel PATH?). O link para o documento efetivo para a instalacao de ferramentas para compilacao segue abaixo: http://cran.r-project.org/doc/manuals/R-admin.html#The-Windows-toolset Veja com cuidado os detalhes de configuracao do PATH (apesar de achar que o instalador que vc usou ja' deve ter cuidado disso)... b

o ls lista os arquivos da pasta (que no caso são o MSGJR.r , MSGJRS.c e MSGJRS.o) o gcc --version gcc <GCC> 4.5.0 Copyright (C) 2010 Free ... This is a free software... Agora eu tentei no computador de casa (antes tava na faculdade). Executando o 1o comando que enviei após a instação do Rtools obtive essa mensagem:
system("R CMD SHLIB MSGJRS.c") cygwin warning: MS-DOS style path detected: C:/r/etc/i386/Makeconf Preferred POSIX equivalent is: /cygdrive/c/r/etc/i386/Makeconf CYGWIN environment variable option "nodosfilewarning" turns off this warning. Consult the user's guide for more details about POSIX paths: http://cygwin.com/cygwin-ug-net/using.html#using-pathnames C:\Rtools\MinGW\bin\nm.exe: MSGJRS.o: File format not recognized gcc -shared -s -static-libgcc -o MSGJRS.dll tmp.def MSGJRS.o -Ld:/RCompile/CRANpkg/extralibs/local/lib/i386 -Ld:/RCompile/CRANpkg/extralibs/local/lib -LC:/r/bin/i386 -lR MSGJRS.o: file not recognized: File format not recognized collect2: ld returned 1 exit status
[]'s 2012/1/19 Benilton Carvalho <beniltoncarvalho@gmail.com>
Se a minha ultima sugestao nao funcionar, tente (ainda no terminal do Windows, nao no R) executar o seguinte:
ls
e, depois:
gcc --version
Avise-nos dos resultados.
Se estes comandos nao funcionarem, e' sinal de que a instalacao do RTools nao foi completada (voce talvez nao tenha atualizado a variavel PATH?).
O link para o documento efetivo para a instalacao de ferramentas para compilacao segue abaixo:
http://cran.r-project.org/doc/manuals/R-admin.html#The-Windows-toolset
Veja com cuidado os detalhes de configuracao do PATH (apesar de achar que o instalador que vc usou ja' deve ter cuidado disso)...
b _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br 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.

Benilton, consegui aqui! Removi o .o e deu certo. Valeu pela ajuda cara! []'s 2012/1/19 Rodrigo Coster <rcoster@gmail.com>
o ls lista os arquivos da pasta (que no caso são o MSGJR.r , MSGJRS.c e MSGJRS.o)
o gcc --version gcc <GCC> 4.5.0 Copyright (C) 2010 Free ... This is a free software...
Agora eu tentei no computador de casa (antes tava na faculdade). Executando o 1o comando que enviei após a instação do Rtools obtive essa mensagem:
system("R CMD SHLIB MSGJRS.c") cygwin warning: MS-DOS style path detected: C:/r/etc/i386/Makeconf Preferred POSIX equivalent is: /cygdrive/c/r/etc/i386/Makeconf CYGWIN environment variable option "nodosfilewarning" turns off this warning. Consult the user's guide for more details about POSIX paths: http://cygwin.com/cygwin-ug-net/using.html#using-pathnames C:\Rtools\MinGW\bin\nm.exe: MSGJRS.o: File format not recognized gcc -shared -s -static-libgcc -o MSGJRS.dll tmp.def MSGJRS.o -Ld:/RCompile/CRANpkg/extralibs/local/lib/i386 -Ld:/RCompile/CRANpkg/extralibs/local/lib -LC:/r/bin/i386 -lR MSGJRS.o: file not recognized: File format not recognized collect2: ld returned 1 exit status
[]'s
2012/1/19 Benilton Carvalho <beniltoncarvalho@gmail.com>
Se a minha ultima sugestao nao funcionar, tente (ainda no terminal do Windows, nao no R) executar o seguinte:
ls
e, depois:
gcc --version
Avise-nos dos resultados.
Se estes comandos nao funcionarem, e' sinal de que a instalacao do RTools nao foi completada (voce talvez nao tenha atualizado a variavel PATH?).
O link para o documento efetivo para a instalacao de ferramentas para compilacao segue abaixo:
http://cran.r-project.org/doc/manuals/R-admin.html#The-Windows-toolset
Veja com cuidado os detalhes de configuracao do PATH (apesar de achar que o instalador que vc usou ja' deve ter cuidado disso)...
b _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br 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.

so' agora vi sua msg... :) abs 2012/1/19 Rodrigo Coster <rcoster@gmail.com>:
Benilton,
consegui aqui! Removi o .o e deu certo. Valeu pela ajuda cara!
[]'s
2012/1/19 Rodrigo Coster <rcoster@gmail.com>
o ls lista os arquivos da pasta (que no caso são o MSGJR.r , MSGJRS.c e MSGJRS.o)
o gcc --version gcc <GCC> 4.5.0 Copyright (C) 2010 Free ... This is a free software...
Agora eu tentei no computador de casa (antes tava na faculdade). Executando o 1o comando que enviei após a instação do Rtools obtive essa mensagem:
system("R CMD SHLIB MSGJRS.c") cygwin warning: MS-DOS style path detected: C:/r/etc/i386/Makeconf Preferred POSIX equivalent is: /cygdrive/c/r/etc/i386/Makeconf CYGWIN environment variable option "nodosfilewarning" turns off this warning. Consult the user's guide for more details about POSIX paths: http://cygwin.com/cygwin-ug-net/using.html#using-pathnames C:\Rtools\MinGW\bin\nm.exe: MSGJRS.o: File format not recognized gcc -shared -s -static-libgcc -o MSGJRS.dll tmp.def MSGJRS.o -Ld:/RCompile/CRANpkg/extralibs/local/lib/i386 -Ld:/RCompile/CRANpkg/extralibs/local/lib -LC:/r/bin/i386 -lR MSGJRS.o: file not recognized: File format not recognized collect2: ld returned 1 exit status
[]'s
2012/1/19 Benilton Carvalho <beniltoncarvalho@gmail.com>
Se a minha ultima sugestao nao funcionar, tente (ainda no terminal do Windows, nao no R) executar o seguinte:
ls
e, depois:
gcc --version
Avise-nos dos resultados.
Se estes comandos nao funcionarem, e' sinal de que a instalacao do RTools nao foi completada (voce talvez nao tenha atualizado a variavel PATH?).
O link para o documento efetivo para a instalacao de ferramentas para compilacao segue abaixo:
http://cran.r-project.org/doc/manuals/R-admin.html#The-Windows-toolset
Veja com cuidado os detalhes de configuracao do PATH (apesar de achar que o instalador que vc usou ja' deve ter cuidado disso)...
b _______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br 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.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br 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.

Faca uma copia apenas do arquivo .c para um outro diretorio... E tente simplesmente: R CMD SHLIB arquivo.c (vc pode tentar isso diretamente do terminal do Windows mesmo) Imagino que o arquivo.o esteja atrapalhando o processo. (sobre a diferenca entre o computador de casa e o da universidade, parece mesmo que e' um problema na variavel PATH) b

Não entendo muito de R no Windows, o pouco que li a respeito orienta a instalação do RTools caso queira lidar com desenvolvimento de pacotes ou interface com outras linguagens. portanto: a única coisa que posso 'dar pitaco' é sobre voce ter ou não instalado este complemento. Suponho que deva precisar do devcpp também, mas não posso precisar, pois minha praia não é windows. []s Leonard de Assis assis <dot> leonard <at> gmail <dot> com Em 19/01/2012 16:01, Rodrigo Coster escreveu:
Boa tarde,
estou tentando reproduzir os passos deste artigo: http://www.jstatsoft.org/v40/i06 (os codigos se encontram no MSGJR.zip), porém eles são para Linux e eu estou no Windows. No artigo os autores falam:
Second, we load the package, the data set and the complied C function MSGJR.c (under Linux, use dyn.load("MSGJR.dll") under Windows)
Porem não estou tendo muito sucesso nessa adaptação. A mensagem de erro que obtive foi a seguinte (reproduzindo apenas a primeira parte do codigo, acredito que resolvendo isso o restante funciona):
rm(list = ls()) options(digits = 4, max.print = 1000, width = 120, prompt = "> ") setwd('F:\\Econometria II\\Bla') library("DEoptim") data("SMI") system("R CMD SHLIB MSGJRS.c") Mensagens de aviso perdidas: execução do comando 'R CMD SHLIB MSGJRS.c' teve status 1 dyn.load("MSGJRS.so") Erro em inDL(x, as.logical(local), as.logical(now), ...) : impossível carregar objeto compartilhado 'F:/Econometria II/Bla/MSGJRS.so': LoadLibrary failure: Não foi possível encontrar o módulo especificado. dyn.load("MSGJRS.dll") Erro em inDL(x, as.logical(local), as.logical(now), ...) : impossível carregar objeto compartilhado 'F:/Econometria II/Bla/MSGJRS.dll': LoadLibrary failure: Não foi possível encontrar o módulo especificado.
Alguem sabe como resolver isso?
[]'s
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br 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.
participantes (3)
-
Benilton Carvalho
-
Leonard de Assis
-
Rodrigo Coster