C++ try 语句不适用于“#include”
C++ try statement won't work with "#include"
我的 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
添加位置,但我希望完成的项目 运行 完全不干涉,无需用户输入。我怎样才能使这项工作?
错了。 try catch
发生在 运行 时间。 #include
在编译时发生(很早)。 #include
发生在您甚至还没有真正拥有 C 或 C++ 编译器之前——那时它只是一个相当简单的文本处理器。
C++17 有 __has_include
可以满足您的需求 - 但您可能没有 C++17 编译器。
看到这个答案:
我的 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
添加位置,但我希望完成的项目 运行 完全不干涉,无需用户输入。我怎样才能使这项工作?
错了。 try catch
发生在 运行 时间。 #include
在编译时发生(很早)。 #include
发生在您甚至还没有真正拥有 C 或 C++ 编译器之前——那时它只是一个相当简单的文本处理器。
C++17 有 __has_include
可以满足您的需求 - 但您可能没有 C++17 编译器。
看到这个答案: