ZemanZhang 2024-05-12 02:58 采纳率: 0%
浏览 64

pgsql15安装vector报错,如何解决?

安装vector拓展按照步骤走报错,劳烦各位帮忙解决一下谢谢


F:\pgvector>call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat"
**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.8.5
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'

F:\pgvector>set PGROOT=D:\pgsql

F:\pgvector>nmake /F Makefile.win
hnswutils.obj : error LNK2019: 无法解析的外部符号 __imp__pg_global_prng_state,函数 _HnswInitElement 中引用了该符号
ivfbuild.obj : error LNK2001: 无法解析的外部符号 __imp__pg_global_prng_state
ivfkmeans.obj : error LNK2001: 无法解析的外部符号 __imp__pg_global_prng_state
hnswvacuum.obj : error LNK2019: 无法解析的外部符号 _vacuum_delay_point,函数 _MarkDeleted 中引用了该符号
ivfvacuum.obj : error LNK2001: 无法解析的外部符号 _vacuum_delay_point
hnswvacuum.obj : error LNK2019: 无法解析的外部符号 _LockBufferForCleanup,函数 _MarkDeleted 中引用了该符号
ivfvacuum.obj : error LNK2001: 无法解析的外部符号 _LockBufferForCleanup
hnswvacuum.obj : error LNK2019: 无法解析的外部符号 _GetAccessStrategy,函数 _InitVacuumState 中引用了该符号
ivfscan.obj : error LNK2001: 无法解析的外部符号 _GetAccessStrategy
ivfvacuum.obj : error LNK2001: 无法解析的外部符号 _GetAccessStrategy
hnswvacuum.obj : error LNK2019: 无法解析的外部符号 _FreeAccessStrategy,函数 _FreeVacuumState 中引用了该符号
ivfscan.obj : error LNK2001: 无法解析的外部符号 _FreeAccessStrategy
ivfvacuum.obj : error LNK2001: 无法解析的外部符号 _FreeAccessStrategy
ivfbuild.obj : error LNK2019: 无法解析的外部符号 _CreateTemplateTupleDesc,函数 _InitBuildState 中引用了该符号
ivfscan.obj : error LNK2001: 无法解析的外部符号 _CreateTemplateTupleDesc
ivfbuild.obj : error LNK2019: 无法解析的外部符号 _TupleDescInitEntry,函数 _InitBuildState 中引用了该符号
ivfscan.obj : error LNK2001: 无法解析的外部符号 _TupleDescInitEntry
ivfbuild.obj : error LNK2019: 无法解析的外部符号 _index_form_tuple,函数 _GetNextTuple 中引用了该符号
ivfinsert.obj : error LNK2001: 无法解析的外部符号 _index_form_tuple
ivfbuild.obj : error LNK2019: 无法解析的外部符号 _MakeSingleTupleTableSlot,函数 _InitBuildState 中引用了该符号
ivfscan.obj : error LNK2001: 无法解析的外部符号 _MakeSingleTupleTableSlot
ivfbuild.obj : error LNK2019: 无法解析的外部符号 _ExecStoreVirtualTuple,函数 _AddTupleToSort 中引用了该符号
ivfscan.obj : error LNK2001: 无法解析的外部符号 _ExecStoreVirtualTuple
ivfbuild.obj : error LNK2019: 无法解析的外部符号 _slot_getsomeattrs_int,函数 _GetNextTuple 中引用了该符号
ivfscan.obj : error LNK2001: 无法解析的外部符号 _slot_getsomeattrs_int
ivfbuild.obj : error LNK2019: 无法解析的外部符号 _tuplesort_begin_heap,函数 _AssignTuples 中引用了该符号
ivfscan.obj : error LNK2001: 无法解析的外部符号 _tuplesort_begin_heap
ivfbuild.obj : error LNK2019: 无法解析的外部符号 _tuplesort_puttupleslot,函数 _AddTupleToSort 中引用了该符号
ivfscan.obj : error LNK2001: 无法解析的外部符号 _tuplesort_puttupleslot
ivfbuild.obj : error LNK2019: 无法解析的外部符号 _tuplesort_performsort,函数 _BuildIndex 中引用了该符号
ivfscan.obj : error LNK2001: 无法解析的外部符号 _tuplesort_performsort
ivfbuild.obj : error LNK2019: 无法解析的外部符号 _tuplesort_gettupleslot,函数 _GetNextTuple 中引用了该符号
ivfscan.obj : error LNK2001: 无法解析的外部符号 _tuplesort_gettupleslot
ivfbuild.obj : error LNK2019: 无法解析的外部符号 _tuplesort_end,函数 _BuildIndex 中引用了该符号
ivfscan.obj : error LNK2001: 无法解析的外部符号 _tuplesort_end
ivfbuild.obj : error LNK2019: 无法解析的外部符号 _tuplesort_estimate_shared,函数 _IvfflatBeginParallel 中引用了该符号
ivfbuild.obj : error LNK2019: 无法解析的外部符号 _tuplesort_initialize_shared,函数 _IvfflatBeginParallel 中引用了该符号
ivfbuild.obj : error LNK2019: 无法解析的外部符号 _tuplesort_attach_shared,函数 _IvfflatParallelBuildMain 中引用了该符号
ivfbuild.obj : error LNK2019: 无法解析的外部符号 _pg_prng_uint32,函数 _ComputeCenters 中引用了该符号
ivfkmeans.obj : error LNK2001: 无法解析的外部符号 _pg_prng_uint32
ivfbuild.obj : error LNK2019: 无法解析的外部符号 _sampler_random_fract,函数 _AddSample 中引用了该符号
ivfbuild.obj : error LNK2019: 无法解析的外部符号 _BlockSampler_Init,函数 _ComputeCenters 中引用了该符号
ivfbuild.obj : error LNK2019: 无法解析的外部符号 _BlockSampler_HasMore,函数 _ComputeCenters 中引用了该符号
ivfbuild.obj : error LNK2019: 无法解析的外部符号 _BlockSampler_Next,函数 _ComputeCenters 中引用了该符号
ivfbuild.obj : error LNK2019: 无法解析的外部符号 _reservoir_init_selection_state,函数 _ComputeCenters 中引用了该符号
ivfbuild.obj : error LNK2019: 无法解析的外部符号 _reservoir_get_next_S,函数 _AddSample 中引用了该符号
ivfbuild.obj : error LNK2019: 无法解析的外部符号 __ftol2_sse,函数 _AddSample 中引用了该符号
ivfbuild.obj : error LNK2019: 无法解析的外部符号 __imp__TTSOpsVirtual,函数 _InitBuildState 中引用了该符号
ivfscan.obj : error LNK2001: 无法解析的外部符号 __imp__TTSOpsVirtual
ivfbuild.obj : error LNK2019: 无法解析的外部符号 __imp__TTSOpsMinimalTuple,函数 _InsertTuples 中引用了该符号
ivfscan.obj : error LNK2001: 无法解析的外部符号 __imp__TTSOpsMinimalTuple
ivfflat.obj : error LNK2019: 无法解析的外部符号 _get_tablespace_page_costs,函数 _ivfflatcostestimate 中引用了该符号
ivfkmeans.obj : error LNK2019: 无法解析的外部符号 _palloc_extended,函数 _ElkanKmeans 中引用了该符号
ivfutils.obj : error LNK2001: 无法解析的外部符号 _palloc_extended
ivfscan.obj : error LNK2019: 无法解析的外部符号 _nocache_index_getattr,函数 _GetScanItems 中引用了该符号
ivfscan.obj : error LNK2019: 无法解析的外部符号 _pairingheap_free,函数 _ivfflatendscan 中引用了该符号
ivfscan.obj : error LNK2019: 无法解析的外部符号 _tuplesort_reset,函数 _ivfflatrescan 中引用了该符号
ivfscan.obj : error LNK2019: 无法解析的外部符号 __imp__work_mem,函数 _ivfflatbeginscan 中引用了该符号
ivfvacuum.obj : error LNK2019: 无法解析的外部符号 _PageIndexMultiDelete,函数 _ivfflatbulkdelete 中引用了该符号
sparsevec.obj : error LNK2019: 无法解析的外部符号 _strtol,函数 _sparsevec_in 中引用了该符号
sparsevec.obj : error LNK2019: 无法解析的外部符号 _pg_qsort,函数 _sparsevec_in 中引用了该符号
sparsevec.obj : error LNK2019: 无法解析的外部符号 _pq_sendfloat4,函数 _sparsevec_send 中引用了该符号
vector.obj : error LNK2001: 无法解析的外部符号 _pq_sendfloat4
sparsevec.obj : error LNK2019: 无法解析的外部符号 _pq_getmsgfloat4,函数 _sparsevec_recv 中引用了该符号
vector.obj : error LNK2001: 无法解析的外部符号 _pq_getmsgfloat4
sparsevec.obj : error LNK2019: 无法解析的外部符号 _pg_ltoa,函数 _sparsevec_out 中引用了该符号
LINK : error LNK2001: 无法解析的外部符号 __DllMainCRTStartup@12
D:\pgsql\lib\postgres.lib : warning LNK4272:库计算机类型“x64”与目标计算机类型“x86”冲突
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.38.33130\lib\x64\LIBCMT.lib : warning LNK4272: 库计算机类型“x64”与目标计算机类型“x86”冲突
vector.dll : fatal error LNK1120: 196 个无法解析的外部命令
NMAKE : fatal error U1077: “cl /nologo /I"D:\pgsql\include\server\port\win32_msvc" /I"D:\pgsql\include\server\port\win32" /I"D:\pgsql\include\server" /I"D:\pgsql\include"   /O2 /fp:fast src\bitutils.obj src\bitvec.obj src\halfutils.obj src\halfvec.obj src\hnsw.obj src\hnswbuild.obj src\hnswinsert.obj src\hnswscan.obj src\hnswutils.obj src\hnswvacuum.obj src\ivfbuild.obj src\ivfflat.obj src\ivfinsert.obj src\ivfkmeans.obj src\ivfscan.obj src\ivfutils.obj src\ivfvacuum.obj src\sparsevec.obj src\vector.obj "D:\pgsql\lib\postgres.lib" /link /DLL /OUT:vector.dll”: 返回代码“0x2”

```bash


```

  • 写回答

3条回答 默认 最新

  • 笑面虎 2024-05-12 02:58
    关注

    以下内容由CHATGPT及笑面虎共同生成、有用望采纳:


    问题概括

    您正在尝试安装 PostgreSQL 的 vector 扩展,但在编译过程中遇到了链接错误。

    问题出现原因

    错误信息表明链接器无法找到某些符号的定义。这通常是因为以下原因之一:

    1. PostgreSQL 数据库的库文件没有正确链接。
    2. 编译环境配置不正确,比如使用了错误的架构(x86 而不是 x64)。
    3. PostgreSQL 版本与 vector 扩展不兼容。

    问题解决方案

    1. 确保 PostgreSQL 版本与 vector 扩展兼容:检查 vector 扩展是否支持您当前安装的 PostgreSQL 版本。
    2. 检查架构一致性:确保您的编译器和 PostgreSQL 都是为相同的架构(x64 或 x86)编译的。错误信息中提到了架构冲突,这可能意味着您的 PostgreSQL 库是为 x86 编译的,而您的编译器设置为 x64。
    3. 确保库文件路径正确:检查 PGROOT 环境变量是否指向了正确的 PostgreSQL 安装目录,并且该目录包含了正确的库文件。
    4. 更新编译环境:如果您使用的是 Visual Studio,确保您的环境变量和库路径都设置正确,以便编译器可以找到 PostgreSQL 的头文件和库文件。

    提供代码

    由于这是一个编译链接问题,而不是代码问题,所以没有具体的代码可以提供。但是,您可以检查您的 Makefile.win 或编译脚本,确保所有路径和库文件都是正确的。

    代码运行方式

    您需要在命令行环境中运行编译命令。确保您的环境变量设置正确,包括 PGROOT 和 Visual Studio 的编译器路径。

    代码预期运行结果

    如果问题解决,编译过程应该不会再出现链接错误,并且能够成功生成 vector.dll 文件。

    推荐相关链接

    请注意,解决这类问题通常需要对编译环境和 PostgreSQL 的安装有深入的了解。如果您不熟悉这些步骤,可能需要寻求更专业的帮助。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月12日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表