格式修订
This commit is contained in:
@ -34,31 +34,32 @@ VCPKG install 库名 --editable,可以在编译前修改库源码
|
|||||||
|
|
||||||
## 5. vc错误: `error MSB4115: 函数“exists”只接受标量值,但其参数“$(ForceImportBeforeCppTargets)”的计算结果为`
|
## 5. vc错误: `error MSB4115: 函数“exists”只接受标量值,但其参数“$(ForceImportBeforeCppTargets)”的计算结果为`
|
||||||
|
|
||||||
* 报错信息:1>节点 1 上的项目“xxxxxx\buildtrees\libpq\x64-windows-dbg\libpq.vcxproj”(默认目标)。
|
* 报错信息:
|
||||||
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Current.targets(14,11): error MSB4115: 函数“exists”只接受标量值,但其参数“$(ForceImportBeforeCppTargets)”的计算结果为“C:/Users/gz/Desktop/vcpkg-2023.08.09/scripts/buildsystems/msbuild/vcpkg.targets;C:/Users/gz/Desktop/vcpkg-2023.08.09/buildtrees/libpq/x64-windows-dbg/vcpkg-libs.props”,不是标量值。 [xxxxxx\buildtrees\libpq\x64-windows-dbg\libpq.vcxproj]
|
> 1>节点 1 上的项目“xxxxxx\buildtrees\libpq\x64-windows-dbg\libpq.vcxproj”(默认目标)。
|
||||||
1>已完成生成项目“xxxxxx\buildtrees\libpq\x64-windows-dbg\libpq.vcxproj”(默认目标)的操作 - 失败。
|
> 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Current.targets(14,11): error MSB4115: 函数“exists”只接受标量值,但其参数“$(ForceImportBeforeCppTargets)”的计算结果为“C:/Users/gz/Desktop/vcpkg-2023.08.09/scripts/buildsystems/msbuild/vcpkg.targets;C:/Users/gz/Desktop/vcpkg-2023.08.09/buildtrees/libpq/x64-windows-dbg/vcpkg-libs.props”,不是标量值。 [xxxxxx\buildtrees\libpq\x64-windows-dbg\libpq.vcxproj]
|
||||||
|
> 1>已完成生成项目“xxxxxx\buildtrees\libpq\x64-windows-dbg\libpq.vcxproj”(默认目标)的操作 - 失败。
|
||||||
* 参考链接:https://github.com/conan-io/conan/issues/7806
|
* 参考链接:https://github.com/conan-io/conan/issues/7806
|
||||||
* 解决方案:
|
* 解决方案:
|
||||||
> 修改对应库ports目录内的msvc.cmake文件
|
> 修改对应库ports目录内的msvc.cmake文件
|
||||||
> /p:ForceImportBeforeCppTargets=\"${SCRIPTS}/buildsystems/msbuild/vcpkg.targets\"
|
> /p:ForceImportBeforeCppTargets=\"${SCRIPTS}/buildsystems/msbuild/vcpkg.targets\"
|
||||||
>
|
>
|
||||||
> /p:ForceImportBeforeCppTargets=\"${build_path}/vcpkg-libs.props\"
|
> /p:ForceImportBeforeCppTargets=\"${build_path}/vcpkg-libs.props\"
|
||||||
|
|
||||||
## 5. 编译GDAL 出现 +[](){}; 加号不明确
|
## 5. 编译GDAL 出现 +[](){}; 加号不明确
|
||||||
|
|
||||||
* 错误信息:
|
* 错误信息:
|
||||||
> xxxxxx\buildtrees\gdal\src\v3.7.1-30395dad39\ogr\ogrsf_frmts\openfilegdb\filegdbindex_write.cpp(1298): error C2593: “operator +”不明确
|
> xxxxxx\buildtrees\gdal\src\v3.7.1-30395dad39\ogr\ogrsf_frmts\openfilegdb\filegdbindex_write.cpp(1298): error C2593: “operator +”不明确
|
||||||
> xxxxxx\buildtrees\gdal\src\v3.7.1-30395dad39\ogr\ogrsf_frmts\openfilegdb\filegdbindex_write.cpp(1298): note: 可能是“内置 C++ operator+(void (__cdecl *)(std::vector<GByte,std::allocator<_Ty>> &,const __int64 &,int))”
|
> xxxxxx\buildtrees\gdal\src\v3.7.1-30395dad39\ogr\ogrsf_frmts\openfilegdb\filegdbindex_write.cpp(1298): note: 可能是“内置 C++ operator+(void (__cdecl *)(std::vector<GByte,std::allocator<_Ty>> &,const __int64 &,int))”
|
||||||
> with
|
> with
|
||||||
> [
|
> [
|
||||||
> _Ty=GByte
|
> _Ty=GByte
|
||||||
> ]
|
> ]
|
||||||
> xxxxxx\buildtrees\gdal\src\v3.7.1-30395dad39\ogr\ogrsf_frmts\openfilegdb\filegdbindex_write.cpp(1298): note: 或 “内置 C++ operator+(void (__vectorcall *)(std::vector<GByte,std::allocator<_Ty>> &,const __int64 &,int))”
|
> xxxxxx\buildtrees\gdal\src\v3.7.1-30395dad39\ogr\ogrsf_frmts\openfilegdb\filegdbindex_write.cpp(1298): note: 或 “内置 C++ operator+(void (__vectorcall *)(std::vector<GByte,std::allocator<_Ty>> &,const __int64 &,int))”
|
||||||
> with
|
> with
|
||||||
> [
|
> [
|
||||||
> _Ty=GByte
|
> _Ty=GByte
|
||||||
> ]
|
> ]
|
||||||
> xxxxxx\buildtrees\gdal\src\v3.7.1-30395dad39\ogr\ogrsf_frmts\openfilegdb\filegdbindex_write.cpp(1298): note: 尝试匹配参数列表“(OpenFileGDB::FileGDBTable::CreateSpatialIndex::<lambda_0019e43095a67889bd1988df31ec838d>)”时
|
> xxxxxx\buildtrees\gdal\src\v3.7.1-30395dad39\ogr\ogrsf_frmts\openfilegdb\filegdbindex_write.cpp(1298): note: 尝试匹配参数列表“(OpenFileGDB::FileGDBTable::CreateSpatialIndex::<lambda_0019e43095a67889bd1988df31ec838d>)”时
|
||||||
* 原因分析:由于C++版本原因,低版本并不支持该转换,因此直接去掉转换即可
|
* 原因分析:由于C++版本原因,低版本并不支持该转换,因此直接去掉转换即可
|
||||||
* 解决方法:尝试去掉lambda前面的加号(该加号用于将lambda表达式转为传统函数指针,兼容老代码)
|
* 解决方法:尝试去掉lambda前面的加号(该加号用于将lambda表达式转为传统函数指针,兼容老代码)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user