我的Dlib安装在多个地方,所以我编写了一个脚本,它将搜索多个位置以查找我需要的文件进行编译:
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
添加位置,但我希望完成的项目完全不需要用户输入即可完成。我怎样才能做到这一点?
答案 0 :(得分:3)
ERR。 try catch
在运行时发生。 #include
在编译时发生(非常早)。 #include
在您真正拥有C或C ++编译器之前就已经发生了 - 此时它只是一个相当简单的文本处理器。
C ++ 17有__has_include
可以做你想要的 - 但你可能没有C ++ 17编译器。