如何重写Linux主机计算机的海湾合作委员会与海湾合作委员会泊坞窗容器

问题描述 投票:0回答:1

我正在考虑使用GCC从official docker images的原因有两个:

  • 不能等待几年我的Linux发行版提供的官方包,这样我可以使用的最近gcc版本的功能。从源代码编译的gcc自己需要太多的努力
  • 要更改版本的GCC容易看到的差异

我设法用下面的别名暂时代替gcc的命令:

alias gcc="docker run --user $(id -u):$(id -g) --rm -t -v "$PWD":/usr/src/myapp -w /usr/src/myapp gcc:8.2 gcc"

那么我可以用gcc hello.cat主机的控制台,我得到的hello.c从泊坞窗图像而不是主机的版本7.3版本的GCC编译8.2。

这工作也很好,如果源文件是一个子目录。例如。 gcc foo/hello.c

问题是如果源文件是在一个更高的目录中会发生什么。例如。

cd foo && gcc ../hello.c

我得到的错误信息:

GCC:错误:../hello.cpp:没有这样的文件或目录

我想,这是因为主机的当前目录映射到工作目录= /usr/src/myapp容器和..进入容器的是工作目录之外。见别名-v "$PWD":/usr/src/myapp -w /usr/src/myapp以上部分。

有没有一种方法来克服这个困难?

linux docker gcc g++
1个回答
1
投票

我认为你将不得不安装根目录。

alias gcc='docker run --user $(id -u):$(id -g) --rm -t -v /:/mnt -w /mnt/"$PWD" gcc:8.2 gcc'

请注意,这仍然不会使用绝对路径的工作。

© www.soinside.com 2019 - 2024. All rights reserved.