2017-09-01 2 views
1

mit Hunderten von undefined reference Fehler zu verknüpfen, um eine DLIB Beispiel zu kompilieren: http://dlib.net/image_ex.cpp.html und ich kopiert es Wort für Wort:Der Versuch, C++ DLIB Beispiel zu bauen versagt Ich versuche

#include <dlib/gui_widgets.h> 
#include <dlib/image_io.h> 
#include <dlib/image_transforms.h> 
#include <fstream> 


using namespace std; 
using namespace dlib; 

// ---------------------------------------------------------------------------- 

int main(int argc, char** argv) 
{ 
    try 
    { 
     // make sure the user entered an argument to this program 
     if (argc != 2) 
     { 
      cout << "error, you have to enter a BMP file as an argument to this program" << endl; 
      return 1; 
     } 

Und ich verwendet dieser Befehl:

g++ dlib1.cpp -o dlib1 -std=c++11 -O3 -I ~/Packages/dlib/ -lpthread -lX11 -ljpeg -lpng -DDLIB_JPEG_SUPPORT -DDLIB_PNG_SUPPORT

Und trotz dieses Befehls vor feinen Monaten gearbeitet: [Can't include the JPEG_SUPPORT headers in a dlib cpp file] diesmal, es gab mir Hunderte Fehler s:

dlibTest-0.cpp:(.text._ZNK4dlib10png_loader9get_imageINS_7array2dINS_9rgb_pixelENS_33memory_manager_stateless_kernel_1IcEEEEEEvRT_[_ZNK4dlib10png_loader9get_imageINS_7array2dINS_9rgb_pixelENS_33memory_manager_stateless_kernel_1IcEEEEEEvRT_]+0x7e): undefined reference to `dlib::png_loader::is_gray() const' 
dlibTest-0.cpp:(.text._ZNK4dlib10png_loader9get_imageINS_7array2dINS_9rgb_pixelENS_33memory_manager_stateless_kernel_1IcEEEEEEvRT_[_ZNK4dlib10png_loader9get_imageINS_7array2dINS_9rgb_pixelENS_33memory_manager_stateless_kernel_1IcEEEEEEvRT_]+0x94): undefined reference to `dlib::png_loader::is_gray() const' 
dlibTest-0.cpp:(.text._ZNK4dlib10png_loader9get_imageINS_7array2dINS_9rgb_pixelENS_33memory_manager_stateless_kernel_1IcEEEEEEvRT_[_ZNK4dlib10png_loader9get_imageINS_7array2dINS_9rgb_pixelENS_33memory_manager_stateless_kernel_1IcEEEEEEvRT_]+0xaa): undefined reference to `dlib::png_loader::is_graya() const' 
dlibTest-0.cpp:(.text._ZNK4dlib10png_loader9get_imageINS_7array2dINS_9rgb_pixelENS_33memory_manager_stateless_kernel_1IcEEEEEEvRT_[_ZNK4dlib10png_loader9get_imageINS_7array2dINS_9rgb_pixelENS_33memory_manager_stateless_kernel_1IcEEEEEEvRT_]+0xd0): undefined reference to `dlib::png_loader::get_row(unsigned int) const' 
dlibTest-0.cpp:(.text._ZNK4dlib10png_loader9get_imageINS_7array2dINS_9rgb_pixelENS_33memory_manager_stateless_kernel_1IcEEEEEEvRT_[_ZNK4dlib10png_loader9get_imageINS_7array2dINS_9rgb_pixelENS_33memory_manager_stateless_kernel_1IcEEEEEEvRT_]+0x176): undefined reference to `dlib::png_loader::get_row(unsigned int) const' 
dlibTest-0.cpp:(.text._ZNK4dlib10png_loader9get_imageINS_7array2dINS_9rgb_pixelENS_33memory_manager_stateless_kernel_1IcEEEEEEvRT_[_ZNK4dlib10png_loader9get_imageINS_7array2dINS_9rgb_pixelENS_33memory_manager_stateless_kernel_1IcEEEEEEvRT_]+0x1ce): undefined reference to `dlib::png_loader::is_graya() const' 

Was genau geht hier schief?

+0

Versuchen Sie, die Präprozessor Argumente bewegen, bevor die Verknüpfung und einschließlich ? – Brandon

+0

Ich habe es gerade versucht, es gab mir das gleiche Ergebnis: Hunderte von Fehlern. – Rich

+0

Sie scheinen die '-L'-Option zu verpassen, um dem Linker zu sagen, in welchem ​​Verzeichnis die 'PNG'-Bibliotheken sind - ich vermute' -L $ HOME/Packages/dlib/lib' oder sowesuch. –

Antwort

1

Einige der Proben eine Befehlszeile benötigen wie ...

g++ -std=c++11 -O3 -I.. ../dlib/all/source.cpp -lpthread -lX11 example_program_name.cpp 

I source.cpp erraten ist eine „Bibliothek als CPP-Code“ link : dlib compile

Verwandte Themen