2017-09-01 24 views
1

とリンクに失敗する:http://dlib.net/image_ex.cpp.html と私はそれを逐語コピー:C++ DLIB例を構築しようとすると、私はDLIB例をコンパイルしようとしている未定義の参照エラーの数百

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

を私は使用このコマンド:

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

そして、そのコマンドにもかかわらず、細かいヶ月前作業:[Can't include the JPEG_SUPPORT headers in a dlib cpp file]この時間は、それは私に何百ものエラーのを与えました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' 

正確には何が問題になりますか?サンプルのいくつかのようなコマンドラインを必要とする

+0

リンクを含む前に、プリプロセッサの引数を移動してみてください? – Brandon

+0

私はちょうどそれを試みた、それは私に同じ結果を与えた:何百ものエラー。私はパッケージ/ DLIB/lib'/'-L $ HOMEを推測したりsomesuchよ - – Rich

+0

あなたは' PNG'ライブラリがあるディレクトリにリンカに指示する '-L'オプションが欠落しているように見えます。 –

答えて

1

...

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

私はsource.cppを推測するには、「CPPコードとしてライブラリー」であるlink : dlib compile

関連する問題