usuario3517736
Estoy en Ubuntu Trusty y estoy creando el siguiente código con este comando. Soy nuevo en clang y me vendría bien ayuda para depurar estos errores. Los archivos cpp y hpp de estos enlaces C son de compilación fina. Copié los encabezados de esos archivos en el siguiente archivo que he enumerado aquí, w.cpp
clang -std=c++11 w.cpp -o w `pkg-config --cflags --libs opencv`
Aquí están los errores:
/usr/bin/ld: /tmp/w-2a90f4.o: undefined reference to
symbol '_ZNSt8ios_base4InitD1Ev@@GLIBCXX_3.4'
//usr/lib/x86_64-linux-gnu/libstdc++.so.6: error adding
symbols: DSO missing from command line
clang: error: linker command failed with exit code 1
(use -v to see invocation)
Aquí está el contenido de w.cpp. Estoy tratando de comparar el código usando clang.
#include <opencv2/c/mat.hpp>
#include <opencv2/c/opencv_generated.hpp>
using namespace cv;
using namespace std;
using namespace flann;
using namespace cvflann;
void cv_delete(char* self) {
delete self;
}
Mat* cv_create_Mat() {
return new Mat();
}
BFMatcher* cv_create_BFMatcher(int normType, bool crossCheck) {
return new BFMatcher(normType, crossCheck);
}
int main () {
for( int a = 1; a < 20; a++)
{
Mat a = &cv_create_Mat();
cv_delete(a);
}
}
Tuve el mismo error al usar gcc en lugar de g ++, creo que debes usar clang ++
clang++ -std=c++11 w.cpp -o w `pkg-config --cflags --libs opencv`
-
Gran respuesta. ¡¡Gracias!!
– usuario2534096
3 de junio de 2018 a las 23:11
Pe Dro
Al compilar archivos C++, es mejor usar
g++ client.cpp -Wall -lstdc++ -o client
-
Para GCC debes usar
g++
!– usr1234567
3 de enero a las 6:53
c++filt
dice que_ZNSt8ios_base4InitD1Ev
es el nombre decorado/destrozado destd::ios_base::Init::~Init()
. Él@@GLIBCXX_3.4
es claramente una etiqueta de versión de biblioteca, pero no conozco el mecanismo de cómo se supone que funciona.– Michael Burr
25 de abril de 2014 a las 7:02
Intenta agregar:
-stdlib=libc++
– Brett Hale
25 de abril de 2014 a las 7:06
@Brett Hale Gracias por comentar en mi publicación :)… Eso ayudó… ahora obtengo /usr/local/include/opencv2/core/cvdef.h:343:12: error fatal: ‘cmath’ archivo no encontrado # incluir
– usuario3517736
25 de abril de 2014 a las 11:11
en caso de que alguien obtenga el mismo error con
gcc
en lugar declang
entonces asegúrate de usarg++
– Ciprian Tomoiaga
3 de octubre de 2015 a las 1:31
Vea esto si está usando g ++ stackoverflow.com/questions/14888626/…
– Alan
9 mayo 2017 a las 20:57