提问人:Vandalism 提问时间:5/17/2023 最后编辑:Vandalism 更新时间:5/26/2023 访问量:310
解决LNK4272错误
Resolving LNK4272 errors
问:
我在 Windows 上安装 Pgvector 扩展有问题
所以安装代码是
set "PGROOT=C:\Program Files\PostgreSQL\15"
git clone --branch v0.4.2 https://github.com/pgvector/pgvector.git
cd pgvector
nmake /F Makefile.win
nmake /F Makefile.win install
我收到致命错误:
C:\Program Files\pgvector>nmake /F Makefile.win
C:\Program Files\PostgreSQL\15\lib\postgres.lib:警告LNK4272:库计算机类型“x64”与目标计算机类型“x86”冲突 矢量.dll:致命错误LNK1120:109 个未解析的外部
除了这些之外,我还收到一堆 LNK 2001 和 2019 错误。
我正在使用; MSVC v143 包 Windows 通用 CRT SDK Windows 10 SDK
答:
我根本不擅长编译,但我设法做到了。这是我是如何做到的:
- 首先,您不能直接从命令提示符工具运行 NMAKE: NMAKE:致命错误 U1077:返回代码“0xc0000135”:
[...]“这意味着您没有在 Visual Studio 命令行界面中启动 nmake。如果要使用标准命令 shell,则必须在 Visual Studio 安装的 VC 目录中调用 vcvarsall.bat 或类似命令”
我是如何编译扩展的:
下载 Visual Studio 社区 2022 并安装与 Windows 和 C++ 相关的所有组件(我说 ALL 不要为缺少 lib 而烦恼,但如果您缺乏空间,您可以选择要安装的库)
查找 vcvarsall.bat 文件的位置(通常为:C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build)
从 GitHub 下载 PGVECTOR 扩展,并将其放在一个易于调用的文件夹中,例如:C:/pgvector
找到 PostgreSQL 安装的根文件夹(例如:C:\Program Files\PostgreSQL\15)
确定您正在使用的 CPU,因为您稍后需要选择一个参数:
vcvarsall.bat x86_amd64
vcvarsall.bat x86_amd64 10.0.10240.0
vcvarsall.bat x86_arm UWP 10.0.10240.0 vcvarsall.bat x86_arm onecore 10.0.10240.0 -vcvars_ver=14.0 vcvarsall.bat x64 8.1
vcvarsall.bat x64 存储 8.1你现在准备好了!
在 Windows 栏中找到以下工具: VS 2022 开发人员命令提示
键入以下命令(如果需要,请进行调整):
cd C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build vcvarsall.bat x64 set "PGROOT=C:\Program Files\PostgreSQL\15" cd c:/pgvector nmake /F Makefile.win nmake /F Makefile.win install
它在两台计算机上为我工作,希望它也适合您或将来可以帮助其他用户。
评论