登录
首页 >  Golang >  Go问答

在 Alpine Golang 中使用 C 代码,我需要安装哪个软件包而不是 libpcre++-dev?

来源:stackoverflow

时间:2024-03-03 09:06:26 261浏览 收藏

Golang不知道大家是否熟悉?今天我将给大家介绍《在 Alpine Golang 中使用 C 代码,我需要安装哪个软件包而不是 libpcre++-dev?》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!

问题内容

我在 docker 容器内有一个 golang 程序(我使用 ubuntu 18)。我还在我的 golang 应用程序中使用 github.com/glenn-brown/golang-pkg-pcre/src/pkg/pcre 作为正则表达式。在使用这个库之前,我应该这样安装 libpcre++-dev

sudo apt-get install libpcre++-dev

但是我在 dockerfile 中使用了 golang:alpine,而 alpine 包中没有 libpcre++-dev 库。

我应该安装什么软件包来代替 libpcre++-dev

附:我尝试安装 libc6-compatpcre pcre-devlibpcrecpp 但我看到此错误:

github.com/glenn-brown/golang-pkg-pcre/src/pkg/pcre /go/pkg/mod/github.com/glenn-brown/[电子邮件受保护]/src/pkg/pcre/pcre.go:52:10: 致命错误:pcre.h:没有这样的文件或目录#include ^~~~~~~~ 编译终止

我的 dockerfile:

from golang:alpine

run apk update
run apk upgrade
run apk add --update --no-cache build-base gcc g++ pcre pcre-dev libc6-compat

# install git + ssl ca certificates.
# git is required for fetching the dependencies.
# ca-certificates is required to call https endpoints.
run apk update && apk add --no-cache curl git ca-certificates tzdata \
 && update-ca-certificates 2> /dev/null || true

我这样构建我的应用程序:

- CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -a -installsuffix cgo -ldflags="-w -s" -o bin/backend ./cmd/backend/main.go

编辑

我已经更改了我的 dockerfile(在下面添加行)

run apk add --update --no-cache 构建基础 gcc g++ pcre pcre-dev libc6-compat

现在我有一个新错误:

加载共享库 libpcre.so.1 时出错:没有这样的文件或目录 (/bin/backend 需要)


解决方案


您可以尝试其中一个,因为这两个包都包含

run apk add --virtual build-dependencies 
run apk add --no-cache build-base gcc

或者您可以安装 alpine sdk。

run apk add --update alpine-sdk

docker-alpine-issues-24

或者你可以使用 golang:latest ,它会工作得很好。

FROM golang:latest
RUN apt-get update 
RUN apt-get install libpcre++-dev -y

终于介绍完啦!小伙伴们,这篇关于《在 Alpine Golang 中使用 C 代码,我需要安装哪个软件包而不是 libpcre++-dev?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>