最近在Ubuntu上做用libtorch部署深度学习网络的工作。使用IDE是VSCode,并用cmake进行编译,在写demo过程中莫名地出现了如题所示的bug卡了两天,今天突然发现问题所在T-T,在此记录下:
一般情况下,在vscode中如果不使用cmake进行编译的话,系统报错fatal error: torch/script.h: No such file or directory基本上就是c_cpp_properties.json里的includePath头文件包含路径的问题,系统提示缺什么就把相应的路径加上就行,这个问题比较容易想到。
第二种情况就是我使用了cmake编译的时候,不仅要在c_cpp_properties.json里的includePath头文件包含相关路径,另外在CmakeLists.txt文件里要加上目标链接库(target_link_libraries),而我就是因为之前不小心把CmakeLists里的目标链接库这句话给注释掉了,所以才导致仍然报错fatal error: torch/script.h: No such file or directory。就是下面这条语句,一定注意加上去!虽然一般写CmakeLists都会写上这句话,但是万一不小心漏了就会引起头文件找不到的问题!
target_link_libraries(test1 ${TORCH_LIBRARIES} ${OpenCV_LIBS})
一般情况下,find_package(Torch REQUIRED)
和 target_link_libraries(example-app "${TORCH_LIBRARIES}")两条语句一起决定包含路径。