向各位前辈请教一下:

参考https://www.vnpy.com/docs/cn/community/install/mac_install.html
执行pip3 install -e .报错如下:
../../vnpy_ctp/api/vnctp/vnctptd/vnctptd.cpp:3001:41: error: unknown type name 'CThostFtdcInvestorInfoCommRecField'
3001 | void TdApi::OnRspQryInvestorInfoCommRec(CThostFtdcInvestorInfoCommRecField pInvestorInfoCommRec, CThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast)
| ^
../../vnpy_ctp/api/vnctp/vnctptd/vnctptd.cpp:3007:3: error: unknown type name 'CThostFtdcInvestorInfoCommRecField'; did you mean 'CThostFtdcInvestorInfoCntSettingField'?
3007 | CThostFtdcInvestorInfoCommRecField task_data = new CThostFtdcInvestorInfoCommRecField();
| ^~~~
| CThostFtdcInvestorInfoCntSettingField
../../vnpy_ctp/api/include/mac/ctp/ThostFtdcUserApiStruct.h:11537:8: note: 'CThostFtdcInvestorInfoCntSettingField' declared here
11537 | struct CThostFtdcInvestorInfoCntSettingField
| ^
../../vnpy_ctp/api/vnctp/vnctptd/vnctptd.cpp:3007:55: error: unknown type name 'CThostFtdcInvestorInfoCommRecField'; did you mean 'CThostFtdcInvestorInfoCntSettingField'?
3007 | CThostFtdcInvestorInfoCommRecField task_data = new CThostFtdcInvestorInfoCommRecField();
| ^
~
| CThostFtdcInvestorInfoCntSettingField
../../vnpy_ctp/api/include/mac/ctp/ThostFtdcUserApiStruct.h:11537:8: note: 'CThostFtdcInvestorInfoCntSettingField' declared here
11537 | struct CThostFtdcInvestorInfoCntSettingField
| ^
../../vnpy_ctp/api/vnctp/vnctptd/vnctptd.cpp:3022:29: error: unknown type name 'CThostFtdcCombLegField'
3022 | void TdApi::OnRspQryCombLeg(CThostFtdcCombLegField pCombLeg, CThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast)
| ^
../../vnpy_ctp/api/vnctp/vnctptd/vnctptd.cpp:3028:3: error: unknown type name 'CThostFtdcCombLegField'; did you mean 'CThostFtdcNoticeField'?
3028 | CThostFtdcCombLegField task_data = new CThostFtdcCombLegField();
| ^~
| CThostFtdcNoticeField
../../vnpy_ctp/api/include/mac/ctp/ThostFtdcUserApiStruct.h:5925:8: note: 'CThostFtdcNoticeField' declared here
5925 | struct CThostFtdcNoticeField
| ^
../../vnpy_ctp/api/vnctp/vnctptd/vnctptd.cpp:3028:43: error: unknown type name 'CThostFtdcCombLegField'; did you mean 'CThostFtdcNoticeField'?
3028 | CThostFtdcCombLegField
task_data = new CThostFtdcCombLegField();
| ^~~~
| CThostFtdcNoticeField
../../vnpy_ctp/api/include/mac/ctp/ThostFtdcUserApiStruct.h:5925:8: note: 'CThostFtdcNoticeField' declared here
5925 | struct CThostFtdcNoticeField
| ^
../../vnpy_ctp/api/vnctp/vnctptd/vnctptd.cpp:3043:32: error: unknown type name 'CThostFtdcInputOffsetSettingField'
3043 | void TdApi::OnRspOffsetSetting(CThostFtdcInputOffsetSettingField pInputOffsetSetting, CThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast)
| ^
../../vnpy_ctp/api/vnctp/vnctptd/vnctptd.cpp:3049:3: error: unknown type name 'CThostFtdcInputOffsetSettingField'
3049 | CThostFtdcInputOffsetSettingField task_data = new CThostFtdcInputOffsetSettingField();
| ^
../../vnpy_ctp/api/vnctp/vnctptd/vnctptd.cpp:3049:54: error: unknown type name 'CThostFtdcInputOffsetSettingField'
3049 | CThostFtdcInputOffsetSettingField task_data = new CThostFtdcInputOffsetSettingField();
| ^
../../vnpy_ctp/api/vnctp/vnctptd/vnctptd.cpp:3064:38: error: unknown type name 'CThostFtdcInputOffsetSettingField'
3064 | void TdApi::OnRspCancelOffsetSetting(CThostFtdcInputOffsetSettingField pInputOffsetSetting, CThostFtdcRspInfoField pRspInfo, int nRequestID, bool bIsLast)
| ^
../../vnpy_ctp/api/vnctp/vnctptd/vnctptd.cpp:3070:3: error: unknown type name 'CThostFtdcInputOffsetSettingField'
3070 | CThostFtdcInputOffsetSettingField* task_data = new CThostFtdcInputOffsetSettingField();
| ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
1029 warnings and 20 errors generated.
ninja: build stopped: subcommand failed.
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.