Errore di compilazione Armadillo con Eclipse CDT
Domanda
Sto compilando qualche applicazione utilizzando Eclipse CDT, utilizzando OpenCV e Armadillo. Ottengo il seguente errore,
In file included from /usr/include/armadillo:108:0,
from /home/bmmo/workspace/GS/Source/IMU/MagRLS.h:11,
from /home/bmmo/workspace/GS/Source/IMU/IMU_class.h:11,
from ../Source/Navigation/NAV2/nav2_get_u.cpp:2:
/usr/include/armadillo_bits/lapack_bones.hpp:235:106: error: expected ‘,’ or ‘...’ before numeric constant
/usr/include/armadillo_bits/lapack_bones.hpp:236:106: error: expected ‘,’ or ‘...’ before numeric constant
/usr/include/armadillo_bits/lapack_bones.hpp:295:139: error: expected ‘,’ or ‘...’ before numeric constant
/usr/include/armadillo_bits/lapack_bones.hpp:296:139: error: expected ‘,’ or ‘...’ before numeric constant
In file included from /usr/include/armadillo:112:0,
from /home/bmmo/workspace/GS/Source/IMU/MagRLS.h:11,
from /home/bmmo/workspace/GS/Source/IMU/IMU_class.h:11,
from ../Source/Navigation/NAV2/nav2_get_u.cpp:2:
/usr/include/armadillo_bits/lapack_wrapper.hpp:184:31: error: expected ‘,’ or ‘...’ before numeric constant
/usr/include/armadillo_bits/lapack_wrapper.hpp: In function ‘void arma::lapack::geev(char*, char*, arma::blas_int*, eT*, arma::blas_int*, eT*)’:
/usr/include/armadillo_bits/lapack_wrapper.hpp:195:74: error: ‘wi’ was not declared in this scope
/usr/include/armadillo_bits/lapack_wrapper.hpp:195:82: error: ‘vl’ was not declared in this scope
/usr/include/armadillo_bits/lapack_wrapper.hpp:195:86: error: ‘ldvl’ was not declared in this scope
/usr/include/armadillo_bits/lapack_wrapper.hpp:195:96: error: ‘vr’ was not declared in this scope
/usr/include/armadillo_bits/lapack_wrapper.hpp:195:100: error: ‘ldvr’ was not declared in this scope
/usr/include/armadillo_bits/lapack_wrapper.hpp:195:110: error: ‘work’ was not declared in this scope
/usr/include/armadillo_bits/lapack_wrapper.hpp:195:116: error: ‘lwork’ was not declared in this scope
/usr/include/armadillo_bits/lapack_wrapper.hpp:195:123: error: ‘info’ was not declared in this scope
.
Posso compilare una richiesta più piccola senza problemi, ma con un progetto più ampio (utilizzando le stesse configurazioni) ottengo questo errore.Cosa potrebbe essere sbagliato?
Soluzione
Includi l'intestazione dell'armadillo prima di qualsiasi intestazione OpenCV.Sospetto che OpenCV utilizza alcuni erranti #Defines che interferiscono con le funzioni e / oi nomi variabili utilizzati da Armadillo.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow