2014-04-25 15 views
5

Jestem na Ubuntu Trusty i buduję następujący kod za pomocą tego polecenia. Jestem nowy, aby zadzwonić i mogę użyć pomocy w debugowaniu tych błędów. Pliki cpp i hpp te wiązania C są z kompilacji dobrze. I kopiowane nagłówki z tych plików w pliku poniżej mam na liście, w.cppniezdefiniowane odniesienie do symbolu "_ZNSt8ios_base4InitD1Ev @@ GLIBCXX_3.4 'budynek OpenCV na Ubuntu

clang -std=c++11 w.cpp -o w `pkg-config --cflags --libs opencv` 

Oto błędy:

 /usr/bin/ld: /tmp/w-2a90f4.o: undefined reference to 
     symbol '[email protected]@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) 

Oto treść w.cpp. Próbuję przetestować kod przy użyciu klang .

 #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); 
      } 

     } 
+1

'C++ filt' mówi, że' _ZNSt8ios_base4InitD1Ev' jest urządzony/zniekształconej nazwy dla 'std :: ios_base :: Init :: ~ Init() '. "@@ GLIBCXX_3.4" to wyraźnie jakiś tag wersjonowania biblioteki, ale nie znam mechanizmu jego działania. –

+3

Spróbuj dodać: '-stdlib = libC++' –

+0

@Brett Hale Dzięki za komentowanie mojego wpisu:) ... To pomogło ... teraz dostaję /usr/local/include/opencv2/core/cvdef.h : 343: 12: błąd krytyczny: plik "cmath" nie został znaleziony # to user3517736

Odpowiedz

11

Miałem ten sam błąd za pomocą gcc zamiast g ++, wierzę, należy użyć szczęk ++

clang++ -std=c++11 w.cpp -o w `pkg-config --cflags --libs opencv` 
Powiązane problemy