运行Go项目调用OpenSSL库时遇openssl/bio.h文件未找到错误
解决Go项目调用OpenSSL时「openssl/bio.h file not found」错误
这个错误的核心原因是系统未安装OpenSSL开发包,或者Go编译时无法定位到OpenSSL的头文件路径。以下是不同操作系统的解决方案:
Linux 系统
- Debian/Ubuntu 系列:
安装OpenSSL开发库:sudo apt-get install libssl-dev - RHEL/CentOS/Fedora 系列:
# RHEL/CentOS 7及以下 sudo yum install openssl-devel # RHEL/CentOS 8+ 或 Fedora sudo dnf install openssl-devel
macOS 系统
- 先通过Homebrew安装OpenSSL:
brew install openssl - 临时指定编译参数运行Go项目:
CGO_CFLAGS="-I$(brew --prefix openssl)/include" CGO_LDFLAGS="-L$(brew --prefix openssl)/lib" go build - 若想永久生效,将路径写入shell配置文件(以zsh为例):
echo 'export CGO_CFLAGS="-I$(brew --prefix openssl)/include"' >> ~/.zshrc echo 'export CGO_LDFLAGS="-L$(brew --prefix openssl)/lib"' >> ~/.zshrc source ~/.zshrc
Windows 系统
- 方式1:通过Chocolatey安装OpenSSL
然后设置环境变量(假设安装路径为choco install opensslC:\Program Files\OpenSSL-win64):
最后执行set CGO_CFLAGS=-IC:\Program Files\OpenSSL-win64\include set CGO_LDFLAGS=-LC:\Program Files\OpenSSL-win64\libgo build即可。 - 方式2:从OpenSSL官网下载预编译开发包,手动指定上述环境变量后编译。
额外注意
确保CGO处于启用状态(默认开启),若之前关闭过,需先设置:
# Linux/macOS export CGO_ENABLED=1 # Windows set CGO_ENABLED=1
内容的提问来源于stack exchange,提问作者Muhammad Anang Ramadhan
相关产品推荐
相关产品推荐

