Tag: gcc

我如何编译python的高山?

背景情况(为什么): 我们有一个用Python编写的项目,运行在一个集装箱化的平台上。 我们正在使用networking文件系统(基于OpenStack)来存储映像和挂载,这在时间点还原方面非常有用,但Docker镜像的大小已经开始在部署中消失。 python:2.7-slim的图像大约是180Mb(我们的代码和依赖关系大约是200Mb),大概需要45秒。 (很多节点!) 我想做的事: 我想从Python代码中编译一个静态二进制文件,然后运行在一个更小的Alpine容器上。 目前进展情况: 运行 $ cython –embed app.py $ gcc -I /usr/lib/python2.7 -o app app.c -lpython2.7 或者可选地 $ pyinstaller -F app.py 产生一个ELF二进制文件(Ubuntu / Debian / Fedora / Kali / Arch)。 第一个要求在目标上安装python-dev,第二个不要,但是通常比第一个运行速度慢大约1200%,并且对于我们的一些代码有困难。 龙在哪里: 编译和运行在Debian上的应用程序工作正常。 $ docker run -v `pwd`/app:/app debian:jessie /app * The application has run successfully… 但阿尔卑斯似乎失败了。 $ docker run […]

在Docker容器中构build较老的gcc

我正在尝试在Docker容器中构buildgcc 4.4.3,但遇到了以下问题: 使用Ubuntu 16.04 Docker镜像, https://github.com/gcc-mirror/gcc/releases上的Github发行版以及下面的Docker命令, Makefile:2470:目标'toplev.o'的配方失败make [2]:*** [toplev.o]错误1 RUN buildDeps='wget unzip bison flex libmpc-dev g++ ' \ && apt-get update && apt-get install -y $buildDeps –no-install-recommends \ && wget https://github.com/gcc-mirror/gcc/archive/gcc-4_4_3-release.zip \ && mv gcc-4_4_3-release.zip gcc-4.4.3.zip\ && unzip gcc-4.4.3.zip \ && mv gcc-gcc-4_4_3-release gcc-4.4.3 \ && cd gcc-4.4.3 \ && mkdir objdir \ && cd […]

如何在Docker中构build便携式GMP和GCC?

我的一个项目是微控制器的C ++ RTOS( http://distortos.org/ )。 这个项目使用Travis-CI进行构buildtesting。 该项目还需要定制GCC工具链(通常是具有完全禁用的C ++exception的工具链)。 工具链是作为Travis-CItesting的一部分而构build的。 由于Travis-CI越来越慢,而他们的构build超时时间一直在50分钟,最近的构build由于超时而开始失败。 所以我最终决定手动构build工具链,将其上传到我的网站,并configurationTravis-CI只需下载它,而不是从源代码构build。 我遵循这里find的文档 – https://docs.travis-ci.com/user/common-build-problems/#Troubleshooting-Locally-in-a-Docker-Image – 并在我自己的电脑上编译工具链里面的Docker 。 然而,工具链无法在Travis-CI服务器上运行的Docker上工作 – https://travis-ci.org/DISTORTEC/distortos/jobs/266553393#L709 。 快速searchnetworking导致我的这个错误报告 – https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71918 所以看起来Docker内build的GMP和/或GCC根本就不是可移植的,这似乎与Docker的主要承诺相矛盾,但现在让我们忽略它吧… 我应该如何解决这个问题? 这可以通过configurationDocker(全局configuration?容器configuration?图像configuration?)以某种方式完成,也许我必须build立一些特定的CFLAGS工具链? 任何其他可能通用的解决scheme,以解决这个问题? 我想避免build立一个完整的虚拟机来做到这一点,但如果这是最好的方法,我就这样做。

在Docker和Ubuntu 16.04上安装HTK

我试图在Ubuntu 16.04中安装Docker中的HTK 。 我的Dockerfile是这样的: FROM ubuntu:16.04 # working directory ENV HOME /root WORKDIR $HOME # packages list RUN \ apt-get update && apt-get install -y \ libc6-dev-i386 \ libx11-dev \ gawk \ python-dev \ python-pip \ curl \ git # pip RUN pip install –upgrade pip # copy & install compat-gcc-34-c++ compat-gcc-34 COPY lib/*.deb $HOME/ […]

在Docker中失败build立CuraEngine

我正在尝试为基于CentOS的CuraEngine构build一个DockerFile。 编译CuraEngine失败: In file included from /tmp/curabuild/CuraEngine/src/pathPlanning/Comb.h:11:0, from /tmp/curabuild/CuraEngine/src/LayerPlan.h:8, from /tmp/curabuild/CuraEngine/src/FffGcodeWriter.h:15, from /tmp/curabuild/CuraEngine/src/FffProcessor.h:5, from /tmp/curabuild/CuraEngine/src/commandSocket.cpp:7: /tmp/curabuild/CuraEngine/src/pathPlanning/../utils/LazyInitialization.h: In constructor 'cura::LazyInitialization<T, Args>::LazyInitialization(Args …)': /tmp/curabuild/CuraEngine/src/pathPlanning/../utils/LazyInitialization.h:34:18: error: expected ',' before '…' token [args…]() ^ 我在网上search驱动我得出这样的结论:我无法编译CuraEngine,因为使用的编译器版本不是很好。 但我没有想到如何改变它。 安装devtoolset-3-gcc本来是要做这个工作的 这是我的DockerFile: # Dockerfile for CuraEngine FROM centos #Global prerequisites RUN yum install -y epel-release RUN yum install -y libtool gcc-c++ wget unzip […]

如何在高山容器中安装python2.6?

如何在高山docker集装箱中安装python2.6。 我试图从源代码安装,它给我编译错误。 其实我想在容器中安装Python2.6和Python2.7。 所以我可以在Python2.6和Python2.7上运行unittests。 请对此提出一些想法。 我已经安装了gcc,g ++,在阿尔派容器中做了下面的步骤。 wget https://www.python.org/ftp/python/2.6/Python-2.6.tgz tar xvzf Python-2.6.tgz cd Python-2.6 ./configure make 在制作时得到这个错误, ~/Python-2.6 # make gcc -c -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -IInclude -I./Include -DPy_BUILD_CORE -o Modules/config.o Modules/config.c gcc -c -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -IInclude -I./Include -DPy_BUILD_CORE -DPYTHONPATH='":plat-linux4:lib-tk:lib-old"' \ -DPREFIX='"/usr/local"' \ -DEXEC_PREFIX='"/usr/local"' \ […]

如何在Docker容器中设置gcc的specs文件

我正在尝试构buildTREZOR固件,它使用docker。 Dockerfile内容: RUN apt-get update RUN apt-get install -y build-essential git python python-ecdsa gcc-arm-none-eabi 当gcc在Docker中编译libopencm3时,出现错误: 错误:'for'循环初始声明只允许在C99模式下注意:使用选项-std = c99或-std = gnu99来编译你的代码 我的第一个想法是为gcc创build规格文件,并在此处添加-std = c99。 但是,因为所有的东西都在Docker容器中运行,所以我不知道如何解决这个问题。 可能是我错了。 有什么build议么? 谢谢

从rootfs创build一个docker容器

我正在处理以下问题: 一个机器人有一个旧的Gentoo OS: Linux bob 2.6.33.9-rt31-aldebaran-rt #1 SMP PREEMPT RT Thu Aug 27 21:42:34 CEST 2015 问题: 我正在尝试为这个机器人构build一个工具链,这样我就可以使用gcc / g ++ 4.9或更高版本编译新的应用程序。 机器人不支持这个,空间有限。 我试图设置RPATH来复制较新的库版本,但涉及太多的问题,它没有工作,唯一的解决scheme是静态链接。 在我看来,我需要通过从机器人创build一个rootfs来构build应用程序。 所以我rsync'ed整个机器人操作系统到我的电脑。 现在我想构build一个docker镜像,以便我可以使用它来从头开始构buildgcc / g ++,而不会受到Robot的限制(它具有Intel(R) Atom(TM) CPU Z530 @ 1.60GHz ,1Gb的RAM和29Mb的硬盘可用)。 我用rsync复制并保留所有属性,所有权等。 rootfs位于/home/alex/roots 我知道我需要以root docker -t someorg/somename /home/alexrootfs 我的问题是(把我当作docker工人的小菜一碟): 我需要运行在一个i686操作系统/ KVM,因为这是什么机器人操作系统运行? 我需要在rootfs中的Dockerfile设置一些细节(例如/home/alex/rootfs/Dockerfile 有没有其他的提示,提示或问题谁曾经这样做过? 我想使用docker而不是chroot,因为这最终应该是构build机器人应用程序的自动化工具的一部分,但是build立在其他机器上。 提前谢谢了!

docker-compose生成错误:命令'gcc'失败,退出状态4

我正在尝试执行docker-compose -f dev.yml build剧本。 但是得到错误command 'gcc' failed with exit status 4 。 我已经尝试安装python-dev和python3-dev库。 剧本之外(从shell)构build是成功的。 更多日志信息: "Running setup.py install for psycopg2: started", " Running setup.py install for psycopg2: finished with status 'done'", " Running setup.py install for regex: started", " Running setup.py install for regex: finished with status 'error'", " Complete output from command /usr/local/bin/python3.5 -u […]

重新创build和扩展centos6-i386 Docker基础镜像时,find“cp:Command not found”

我目前正在重build我们的构build服务器,并为我们的各个项目创build一组Docker镜像,因为每个项目都有相当不同的工具链和库要求。 由于Docker目前只能在64位主机上运行,​​因此构build服务器将是x86_64 Fedora 22机器。 这些图片必须能够修改我们项目的历史/标签发布; 我们可以根据需要对每个项目的构build过程进行更改,但仅限于当前中继和将来的发行版。 现在,我的一个构build环境需要重现旧的i686构build服务器。 对于执行32位程序,我可以简单地安装i686支持库( yum install glibc.i686 ncurses-libs.i686 ),但是这并不帮助我构build 32位程序,而不必修改Makefile以将-m32传递给GCC …,如上所述,我不希望改变历史的代码库。 所以,我目前的想法是通过安装包括GCC在内的所有 i686软件包,在Docker容器中基本上伪造一个i686版本的CentOS。 这样,尽pipeuname -a会报告主机的x86_64体系结构,但容器内的其他所有内容都应该保持一致。 我从“centos-i386”基本图像中获得了这个想法(和centos6.tar.gz ),实际上,我正在试图为我自己的本地图像进行复制。 可悲的是,这不太好。 这是一个最小化的Dockerfile : FROM scratch # Inspiration from https://hub.docker.com/r/toopher/centos-i386/~/dockerfile/ ADD centos6.tar.gz / RUN echo "i686" > /etc/yum/vars/arch && \ echo "i386" > /etc/yum/vars/basearch ENTRYPOINT ["linux32"] # Base packages RUN yum update -y && yum […]