2017-03-25 5 views
1

私はcppファイルをコンパイルしようとしていました:dlibの顔検出器:http://dlib.net/face_detection_ex.cpp.htmlJPEG_SUPPORTヘッダをdlib cppファイルに含めることはできません

processing image /home/james/Work/Coding/Sources/Image/950.jpg 

exception thrown! 
Unable to load image in file /home/dave/Code/Resources/Images/500.jpg. 
You must #define DLIB_JPEG_SUPPORT and link to libjpeg to read JPEG files. 
Do this by following the instructions at http://dlib.net/compile.html. 

Note that you must cause DLIB_JPEG_SUPPORT to be defined for your entire project. 
So don't #define it in one file. Instead, use a compiler switch like -DDLIB_JPEG_SUPPORT 
so it takes effect for your entire application. 

私は-DDLIB_JPEG_SUPPORTフラグを使用してみました、それが失敗したので、私TREIDはファイルでそれらを定義するには::私はそれを実行したときしかし、それは私がJPGとPNGファイル用のライブラリが含まれるようにと言いました

*/ 

#define DLIB_JPEG_SUPPORT 
#define DLIB_PNG_SUPPORT 

#include </home/james/dlib/image_io.h> 
#include </home/james/dlib/image_processing/frontal_face_detector.h> 
#include </home/james/dlib/gui_widgets.h> 
#include </home/james/dlib/image_io.h> 
#include <iostream> 

using namespace dlib; 
using namespace std; 

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

int main(int argc, char** argv) 

それはコンパイルに失敗しました:

[email protected]:~/Work/Coding/Cpp/Dlib/Examples$ g++ -std=c++11 -O3 -I.. ~/dlib/all/source.cpp -lpthread -lX11 face_detection_ex.cpp -o face_detection_ex_2/tmp/ccVHitZj.o: In function `main': 
face_detection_ex.cpp:(.text.startup+0x1c0d): undefined reference to `dlib::jpeg_loader::jpeg_loader(std::string const&)' 
face_detection_ex.cpp:(.text.startup+0x1d0a): undefined reference to `dlib::jpeg_loader::is_gray() const' 
face_detection_ex.cpp:(.text.startup+0x1e3b): undefined reference to `dlib::png_loader::png_loader(std::string const&)' 
face_detection_ex.cpp:(.text.startup+0x1f04): undefined reference to `dlib::png_loader::is_gray() const' 
face_detection_ex.cpp:(.text.startup+0x1f23): undefined reference to `dlib::png_loader::is_gray() const' 
face_detection_ex.cpp:(.text.startup+0x1f38): undefined reference to `dlib::png_loader::is_graya() const' 
face_detection_ex.cpp:(.text.startup+0x1f59): undefined reference to `dlib::png_loader::is_graya() const' 
face_detection_ex.cpp:(.text.startup+0x1f6e): undefined reference to `dlib::png_loader::is_rgb() const' 
face_detection_ex.cpp:(.text.startup+0x1f83): undefined reference to `dlib::png_loader::is_rgb() const' 
face_detection_ex.cpp:(.text.startup+0x1f98): undefined reference to `dlib::png_loader::is_rgba() const' 
face_detection_ex.cpp:(.text.startup+0x1fad): undefined reference to `dlib::png_loader::is_rgba() const' 
face_detection_ex.cpp:(.text.startup+0x2009): undefined reference to `dlib::png_loader::get_row(unsigned int) const' 
face_detection_ex.cpp:(.text.startup+0x20b6): undefined reference to `dlib::png_loader::get_row(unsigned int) const' 
face_detection_ex.cpp:(.text.startup+0x211c): undefined reference to `dlib::png_loader::~png_loader()' 
face_detection_ex.cpp:(.text.startup+0x229a): undefined reference to `dlib::png_loader::get_row(unsigned int) const' 
face_detection_ex.cpp:(.text.startup+0x2587): undefined reference to `dlib::png_loader::get_row(unsigned int) const' 
face_detection_ex.cpp:(.text.startup+0x2ea7): undefined reference to `dlib::png_loader::~png_loader()' 
face_detection_ex.cpp:(.text.startup+0x2fe9): undefined reference to `dlib::png_loader::get_row(unsigned int) const' 
face_detection_ex.cpp:(.text.startup+0x30ac): undefined reference to `dlib::png_loader::get_row(unsigned int) const' 
face_detection_ex.cpp:(.text.startup+0x313c): undefined reference to `dlib::png_loader::get_row(unsigned int) const' 
face_detection_ex.cpp:(.text.startup+0x31c4): undefined reference to `dlib::png_loader::get_row(unsigned int) const' 
collect2: error: ld returned 1 exit status 

答えて

3

を前にご質問くださいコンパイラとツールがあなたを示すことがエラーと提案メッセージをお読みください。

About:
exception thrown! Unable to load image in file /home/dave/Code/Resources/Images/500.jpg. You must #define DLIB_JPEG_SUPPORT and link to libjpeg to read JPEG files. Do this by following the instructions at http://dlib.net/compile.html .

libjpeg、libpngなどのライブラリをインストールし、コンパイル時にそれらを使用してプログラムをリンクします。推奨ページhttp://dlib.net/compile.htmlをお読みください。

ソースコードファイルが複数ある場合は、コンパイルする前にコードからプリプロセッサディレクティブを削除してください。

#define DLIB_JPEG_SUPPORT 
#define DLIB_PNG_SUPPORT 

推奨スイッチコンパイラ:-DDLIB_JPEG_SUPPORTを使用してください。だから、

Note that you must cause DLIB_JPEG_SUPPORT to be defined for your entire project. So don't #define it in one file. Instead, use a compiler switch like -DDLIB_JPEG_SUPPORT so it takes effect for your entire application.

、コンパイルするために、このようなコマンドを使用します。

g++ face_detection_ex.cpp -o face_detection_ex_2 -std=c++11 -O3 -I.. ~/dlib/all/source.cpp -lpthread -lX11 -ljpeg -lpng -DDLIB_JPEG_SUPPORT -DDLIB_PNG_SUPPORT

は、ライブラリ(のlibjpegとのlibpng)が既にインストールされていると仮定。

+0

私はそれらを定義しようとしました*、それらは動作しませんでした。私はすでにlibjpegとlibpngをインストールしています。 – Rich

+0

あなたのコマンドを実行しようとしたとき、 'g ++:error:lpng:そのようなファイルやディレクトリはありません.' – Rich

+1

私はコマンドにダッシュを忘れていますが、今更新されています。 変更(lpng - > - lpng)。 – jplc

関連する問題