<div id="content_views" class="htmledit_views" deep="6">
<h2><a name="t0"></a><a id="_0"></a>项目场景:</h2>
当使用高版本的cuda去安装低版本pytorch,并且编译用低版本pytorch写的cuda算子时,或者说是VS的版本过高如2022和2019,都有可能会出现某个.h文件或者.c文件报错,如:
error: too few arguments for template template parameter "Tuple" detected during instantiation of class "pybind11::detail::tuple_caster<Tuple, Ts...>
解决方案:
修改报错对应行的表达式,像我这里报错的是torch里的cast.h的文件,网络上关于这个cast.h的错误好像就是最多的,就去conda envs里的
torch/include/pybind11/cast.h
在报错的前面加上下面的代码进行修改,提前定义这个tuple_caster
-
template
<template
<typename...
>
class Tuple, typename... Ts
>
-
class tuple_caster;
-
-
template
<typename T
1, typename T
2
>
class
type_caster
<std
::pair
<T
1, T
2
>>
-
: public tuple_caster
<std
::pair, T
1, T
2
> {};
-
-
template
<typename... Ts
>
class
type_caster
<std
::tuple
<Ts...
>>
-
: public tuple_caster
<std
::tuple, Ts...
> {};