gpt4 book ai didi

c - 为什么我的 C 程序可以在 "git bash"运行,但不能在 "cmd"运行?

转载 作者:行者123 更新时间:2023-11-29 14:24:47 28 4
gpt4 key购买 nike

我写了一个使用 libpq 连接到 PostgreSQL 数据库的演示。

我尝试通过包含将 C 文件连接到 PostgreSQL

#include <libpq-fe.h>

在我将路径添加到系统变量 I:\Program Files\PostgreSQL\12\lib 以及 I:\Program Files\PostgreSQL\12\include 之后> 并使用此命令编译:

gcc -Wall -Wextra -m64 -I "I:\Program Files\PostgreSQL\12\include" -L "I:\Program Files\PostgreSQL\12\lib" testpsql.c -lpq -o testpsql

它首先引发了三个错误,比如

libssl-1_1-x64.dll is missing
libintl-8.dll was missing
libcrypto-1_1-x64.dll was missing

我把这三个文件下载到I:\Program Files\PostgreSQL\12\lib后,再次编译,显示错误

The application was unable to start correctly (0xc0150002)

当我键入 testpsql 时。但是,如果我在 git bash 上键入 ./testpsql,它就可以工作。谁能告诉我为什么?

我使用的代码是来自 here 的第一个示例.

环境:PostgreSQL 12、Windows 10、MinGW64

最佳答案

“下载 DLL 文件”听起来很危险。从哪里来?

我会再次删除这些文件。由于您可能没有从您的代码中引用这些库,因此它必须是 libpq.dll 的依赖项。并且可能在 I:\Program Files\PostgreSQL\12\bin 中找到(如果您使用了 EDB 安装程序)。

问题可能是你的 PATH git bash 中的环境变量不同|在cmd.exe ,在后一种情况下,并非所有必需的共享库都可以在 PATH 上找到.解决方案是更改 PATH以便它包含可执行文件所需的所有 DLL 文件,开始复制文件。

包含 I:\Program Files\PostgreSQL\12\bin 可能就足够了在PATH .要解决缺少的依赖项,请使用类似 dependency walker 的工具或 this replacement .

关于c - 为什么我的 C 程序可以在 "git bash"运行,但不能在 "cmd"运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59087525/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com