如何将 C++ 库(例如 libjpeg-dev)添加到 Windows Docker 图像中,以便 CMake 可以检测到它们?
How can I add C++ Libraries (e.g. libjpeg-dev) into Windows Docker Image so that CMake can detect them?
我正在设置一个 Windows docker 容器,以便能够编译 CMake C++ 项目。 CMake 文件使用 find_package()
CMake 命令获取包。例如:
find_package(JPEG CONFIG REQUIRED)
find_package(OpenSSL REQUIRED)
find_package(PNG CONFIG REQUIRED)
find_package(ZLIB CONFIG REQUIRED)
现在在 linux docker 容器上安装这些库非常简单,我只需在 'CORE_PACKAGES' 中添加一行。这是我的 linux docker 文件的示例。
ENV LANG=C.UTF-8 \
PYTHONIOENCODING=UTF-8 \
CORE_PACKAGES="\
# ... other trivial packages omitted
libjpeg-dev \
libpng-dev \
libssl-dev \
zlib1g-dev \
"
# Install core dependencies & updates
RUN apt-get update && \
apt-get upgrade && \
apt-get install -y $CORE_PACKAGES && \
update-ca-certificates
我正在尝试在 Windows docker 文件中创建与此片段等效的内容。
在我的 Windows docker 文件中,我正在使用一个名为 'Choco' 的 windows 包管理器在 windows 上安装一些东西,但是 Choco 没有东西像 'libpng-dev' 和 'libjpeg-dev'。所以我的问题是,在 Windows Docker 容器上添加 C++ 开发库的标准做法是什么?
在对 Windows 和 Linux 上兼容的不同 C++ 包管理器进行了大量研究后,我遇到了 VcPkg 并强烈推荐给正在寻找的其他人一个 C++ 包管理器。
以下是我发现特别有用的一些功能
- CMake 兼容
- 通过脚本轻松安装,非常容易添加到 docker 容器
- 与 Windows、Linux 和 Mac
兼容
- 大量的 C++ 包,如果不存在,您可以打开一个问题来添加它,或者您可以自己实现它并打开一个 pull request
- 开源
使用 Vcpkg 的唯一缺点是没有本地方法可以选择某个包的旧版本。
我正在设置一个 Windows docker 容器,以便能够编译 CMake C++ 项目。 CMake 文件使用 find_package()
CMake 命令获取包。例如:
find_package(JPEG CONFIG REQUIRED)
find_package(OpenSSL REQUIRED)
find_package(PNG CONFIG REQUIRED)
find_package(ZLIB CONFIG REQUIRED)
现在在 linux docker 容器上安装这些库非常简单,我只需在 'CORE_PACKAGES' 中添加一行。这是我的 linux docker 文件的示例。
ENV LANG=C.UTF-8 \
PYTHONIOENCODING=UTF-8 \
CORE_PACKAGES="\
# ... other trivial packages omitted
libjpeg-dev \
libpng-dev \
libssl-dev \
zlib1g-dev \
"
# Install core dependencies & updates
RUN apt-get update && \
apt-get upgrade && \
apt-get install -y $CORE_PACKAGES && \
update-ca-certificates
我正在尝试在 Windows docker 文件中创建与此片段等效的内容。 在我的 Windows docker 文件中,我正在使用一个名为 'Choco' 的 windows 包管理器在 windows 上安装一些东西,但是 Choco 没有东西像 'libpng-dev' 和 'libjpeg-dev'。所以我的问题是,在 Windows Docker 容器上添加 C++ 开发库的标准做法是什么?
在对 Windows 和 Linux 上兼容的不同 C++ 包管理器进行了大量研究后,我遇到了 VcPkg 并强烈推荐给正在寻找的其他人一个 C++ 包管理器。
以下是我发现特别有用的一些功能
- CMake 兼容
- 通过脚本轻松安装,非常容易添加到 docker 容器
- 与 Windows、Linux 和 Mac 兼容
- 大量的 C++ 包,如果不存在,您可以打开一个问题来添加它,或者您可以自己实现它并打开一个 pull request
- 开源
使用 Vcpkg 的唯一缺点是没有本地方法可以选择某个包的旧版本。