2017-01-09 6 views
-3

マイDLIBのインストールは動作しませんしてみてください++は複数の場所にあるので、私はコンパイルするために私の必要なファイルのための複数の場所を検索するスクリプトを書いている:C文は「の#include」と

int main() 
{ 
    try{ 
     #include <dlib/image_processing/frontal_face_detector.h> 
     #include <dlib/image_io.h> 
    }catch(...){ 
     cout << "Location A is incorrect: " << e << endl; 
    } 


    try{ 
     #include <dlib/dlib/image_processing/frontal_face_detector.h> 
     #include <dlib/dlib/image_io.h> 
    }catch(...){ 
     cout << "Location B is incorrect: " << e << endl; 
    } 



    return 0; 
} 

しかし、何らかの理由で、g++はまだ私に同じNo such file...エラーを与える:

g++ IWillFindLib--00.cpp -o IWillFindLib--00.o 
IWillFindLib--00.cpp:8:59: fatal error: dlib/image_processing/frontal_face_detector.h: No such file or directory 
    #include <dlib/image_processing/frontal_face_detector.h> 
                ^
compilation terminated. 

は今、私はちょうどg++ -I home/name/dlibと場所を追加することができます知っているが、私は実行するために、完成したプロジェクトは、完全にハンズオフからの入力なしにしたいですユーザー。どうすればこの作品を作れますか?

+1

ありますが、このような何かを行うことができます多くの方法がありますが、これはその一つではありません。問題の詳細について多くの情報を提供しているわけではありませんので、問題解決のための賢明な方法についてアドバイスすることは困難です。おそらく、必要な '#include 'を含むヘッダファイルを生成し、そのファイルに' #include'というファイルを持つプログラム(またはスクリプト)をインクルードしてください。 –

+1

[Cプリプロセッサを使用してファイルが存在するかどうかを知ることができますか?](http://stackoverflow.com/questions/142877/can-the-c-preprocessor-be-used-to-tell-if- a-file-exists) –

+0

2008年に戻る? – Rich

答えて

3

Err。 try catchは実行時に発生します。コンパイル時に#includeが(非常に早い)発生します。 #includeは、実際にCまたはC++コンパイラを実際に使用する前に発生します。その時点では、かなり単純なテキストプロセッサです。

C++ 17には__has_includeがありますが、これはあなたが望むことを実行しますが、おそらくC++ 17コンパイラはありません。

この回答を参照してください:https://stackoverflow.com/a/33260104/771073

+0

Oh。では、複数の場所を確認するにはどうすればよいですか?私が設定できる再コンパイルシステムのタイプはありませんか? – Rich

+0

@Rich:その質問に対する他の答えを読んでください。 (合理的に最新のコンパイラ(GCC5.x、MSVC2015、Clang)に頼ることができれば、 '__has_include'がサポートされているようです。) –

+0

しかし、どのようにして"異なるファイルはありません "というエラーを別のコンピュータで回避できますか? – Rich

関連する問題