[Risolto] G++ Eigen

Ciao a tutti!
Ho appena fatto il passaggio a F20 e non riesco a far funzionare più una libreria http://eigen.tuxfamily.org che uso molto.
Ho proceduto all’installazione di Eigen nel seguente modo:

#yum search eigen
============================== N/S matched: eigen ==============================
arpack.i686 : Fortran 77 subroutines for solving large scale eigenvalue problems
arpack.x86_64 : Fortran 77 subroutines for solving large scale eigenvalue
              : problems
eigen2-devel.noarch : A lightweight C++ template library for vector and matrix
                    : math
eigen3-devel.noarch : A lightweight C++ template library for vector and matrix
                    : math
lis.i686 : A library for solving linear equations and eigenvalue problems
lis.x86_64 : A library for solving linear equations and eigenvalue problems
mingw32-eigen3.noarch : MinGW lightweight C++ template library for vector and
                      : matrix math
mingw64-eigen3.noarch : MinGW lightweight C++ template library for vector and
                      : matrix math

  Name and summary matches only, use "search all" for everything.

Dopodichè

#yum install eigen3-devel

Su F19 avevo seguito la stessa procedura e funzionava alla perfezione, mentre ora quando vado ad ‘includere’ le librerie non va dandomi un fatal error.

La libreria è installata giusto? Il sorgente che stai cercando di compilare funzionava precedentemente?

L’ho installata come ho fatto sopra e il sorgente che avevo scritto prima di passare a F20 compilava, ora non compila più. Mi da errore proprio sull’ #include <Eigen/Eigenvalues> quindi come se la libreria non fosse installata. Come faccio a verificare che la libreria sia installata correttamente? Immagino che debba esserci una copia del sorgente Eigen da qualche parte, ho provato (guardando la PATH variable in .bash_profile) a copiare il sorgente della libreria in .local/, .local/bin ma lo stesso non va. Mentre non so dove dovrei trovare le cartelle di eigen installandolo tramite yum.

rpm -q eigen3-devel

Mi ha risposto con:

eigen3-devel-3.2-3.fc20.noarch

Ho provato amvhe con l’opzione -V ma non mi da nessun output.

I file di sviluppo sono installati!
Prova a creare un file sorgente basilare, vedi se funziona.

Ho provato un basilare ‘Hello World!’ semplicemente caricando la libreria ma non funziona. Ho provato invertendo l’include di iosream con eigen, ma continua a darmi lo stesso problema solo su eigen.

Esattamente l’output è il seguente:

$ g++ provaeigen/HW.cpp 
provaeigen/HW.cpp:2:29: fatal error: Eigen/Eigenvalues: No such file or directory
 #include <Eigen/Eigenvalues>
                             ^

Fai:

# updatedb
$ locate eigen

Il primo non ha restituito output, mentre il secondo è una sciorinata di paths, ma sembra che devo sostanzialmente cercare in /usr/include/eigen3,e poi c’è una lista interminabile in /usr/share/doc/eigen3 con estensioni html js e png che credo sia la guida.

Forse ho risolto, ho dato un’occhiata alle directory usr/include e ho provato a sostituire #include <Eigen/Eigenvalues> con #include <eigen3/Eigen/Eigenvalues> ed effettivamente funziona, ora mi trovo davanti a due soluzioni:
[list=*]
]Faccio la sostituzione che ho fatto sopra in tutti i sorgenti, funziona ma è lungo./]
]Prendo la cartella Eigen e la ‘promuovo’ in include./]
[/list]
Cosa è meglio fare?

Se la cartella Eigen non esiste in /usr/include,

[code]# cd /usr/include

ln -s Eigeneigen3/Eigen Eigen[/code]

…e lo freghi…

Fatto, e… Funziona! Me lo hai fatto fregare con un link?

:smiley:

Grande! Grazie!