J'ai installé R à RPM (avec Yast).Compilation du programme RInside avec g ++ sous Linux
[email protected]:~> locate RInside.so
/usr/lib64/R/library/RInside/lib/libRInside.so
/usr/lib64/R/library/RInside/libs/RInside.so
[email protected]:~> locate Rcpp.so
/usr/lib64/R/library/Rcpp/lib/libRcpp.so
/usr/lib64/R/library/Rcpp/libs/Rcpp.so
Le fichier (rinsidetest.cpp
) que je souhaite compiler contient:
#include <RInside.h>
#include <Rcpp.h>
int main (int argc, char *argv[])
{
RInside R (argc, argv);
return 0;
}
Voilà comment je le compiler:
[email protected]:~> g++ rinsidetest.cpp -I /usr/lib64/R/library/RInside/include/ -I /usr/lib64/R/library/Rcpp/include/ -I /usr/lib64/R/include/ -L /usr/lib64/R/library/RInside/libs/ -L /usr/lib64/R/library/Rcpp/libs/
/tmp/ccUfdjgZ.o: In function `main':
rinsidetest.cpp:(.text+0xb7): undefined reference to `RInside::RInside(int, char const* const*, bool)'
rinsidetest.cpp:(.text+0xc8): undefined reference to `RInside::~RInside()'
collect2: ld returned 1 exit status
R informations:
> sessionInfo()
R version 2.15.1 (2012-06-22)
Platform: x86_64-unknown-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=C LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] tcltk_2.15.1 tools_2.15.1
>
RInside
Version: 0.2.6
Rcpp
Version: 0.9.13
est-il une solution à ce problème, ou je "dois" supprimer l'installation de tours par minute et commencer tout en compilant de la source?
EDIT
[email protected]:~/Desktop/abc> g++ rinsidetest.cpp -I /usr/lib64/R/library/RInside/include/ -I /usr/lib64/R/library/Rcpp/include/ -I /usr/lib64/R/include/ -L /usr/lib64/R/library/RInside/lib/ -L /usr/lib64/R/library/Rcpp/lib/ -lRInside
[email protected]:~/Desktop/abc> ls
a.out rinsidetest.cpp
[email protected]:~/Desktop/abc> ./a.out
./a.out: error while loading shared libraries: libRInside.so: cannot open shared object file: No such file or directory
merci, cela a aidé d'une manière ou d'une autre. J'ai ajouté le nouveau résultat dans la question. Je reçois maintenant une erreur lors de l'exécution de 'a.out'. S'il vous plaît dites-moi quel est le point que je manque toujours? –
c'est un problème différent. Le binaire a été construit avec succès, mais il semble que Linux ne puisse pas charger le fichier .so. C'est peut-être un problème de chemin que vous devez ajouter. Je publierais une nouvelle question pour ce problème, mais ajouter la balise C++ au lieu de la balise r que la communauté C++ est plus grande. Je ne suis pas sûr comment vous dites à Linux où chercher .so le chargement des fichiers. Votre compilation a cependant fonctionné mais c'est un problème d'exécution.Comme solution temporaire, vous pouvez essayer de copier vos bibliothèques dans le répertoire/usr/lib/en tant que solution TEMPORAIRE pour voir si vous pouvez ensuite les exécuter car l'exe doit récupérer ce répertoire. – mathematician1975
@AnishaKaul ou même copier dans le répertoire local binary is in – mathematician1975