MCUXpresso / Eclipse C语言项目的自动无界面构建

3

你好,

以下是在容器中无需图形界面从头编译项目的不同步骤。

我已经构建了一个带有MCUXpresso的Docker,并在克隆此项目后想要像开发人员一样自动编译。

对于编译,我找到了这篇文章这个或者这个

对于链接问题,我找到了这篇文章

一切正常!

步骤1:如何解决链接问题。

您需要安装SDK包。否则,将其复制到您的容器中。

docker cp </path/mcuxpresso/sdk/uc.zip> <container_name:/root/mcuxpresso/02/SDKPackages/>

SDK包

步骤2:导入一个SDK示例Hello World项目

通过MCUXpresso在MCUXpresso中创建简单项目

步骤3:将此项目复制到您的Docker中。

docker cp <</source/path>> <<container_name:/destination/path>>

步骤四:更新集成开发环境的路径。

export IDE=/usr/local/mcuxpressoide/ide/mcuxpressoide

添加IDE路径

步骤5:编译。

$IDE -nosplash
        --launcher.suppressErrors
        -application org.eclipse.cdt.managedbuilder.core.headlessbuild
        -data \path\to\workspace
        -import {[uri:/]/path\to\project}
        -build {project_name[/build_config] | all}
        -cleanBuild {project_name[/build_config] | all}

编译完成

步骤6:完成。

一切正常运行。


安装MCUXpresso IDE需要与安装程序进行交互,以接受许可协议。您是否在Docker容器中同时安装了MCUXpresso IDE和SDK,还是只安装了SDK? - Ed of the Mountain
1
是的。安装在 Docker 中。我不记得具体步骤了,但当时是在谷歌上找到的。明天我会检查一下那个“神奇”的代码如何实现。 - Gromph
Gromph,您在Docker中自动化MCUXpresso安装程序所使用的“魔法”代码的线索将非常感激。提前感谢您的查阅! - Ed of the Mountain
1
自2月17日以来已完成。检查答案,希望它有效。 - Gromph
Eclipse运行时选项:https://help.eclipse.org/latest/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fmisc%2Fruntime-options.html - parvus
1个回答

1

在Docker中安装MCUXpresso:

准备步骤:需要在启动Docker构建之前下载MCUXpresso。

FROM ubuntu:bionic
LABEL Description="Image for buiding arm project with mcuxpresso"
WORKDIR  /usr/src/mcuxpresso

ENV DEBIAN_FRONTEND noninteractive
ENV IDE_VERSION 11.0.0_2516

COPY mcuxpresso/mcuxpressoide-${IDE_VERSION}.x86_64.deb.bin /usr/src/mcuxpresso

# Install any needed packages specified in requirements.txt
RUN apt update && \
    apt upgrade -y && \
    apt install -y \
    # Development files
    whiptail \
    build-essential \
    bzip2 \
    libswt-gtk-3-jni \
    libswt-gtk-3-java \
    wget && \
    apt clean

# Install mcuxpresso
RUN chmod a+x mcuxpressoide-${IDE_VERSION}.x86_64.deb.bin &&\
  # Extract the installer to a deb package
  ./mcuxpressoide-${IDE_VERSION}.x86_64.deb.bin --noexec --target mcu &&\
  cd mcu &&\
  dpkg --add-architecture i386 && apt-get update &&\
  apt-get install -y libusb-1.0-0-dev dfu-util libwebkitgtk-1.0-0 libncurses5:i386 udev &&\
  dpkg -i --force-depends JLink_Linux_x86_64.deb &&\
  # manually install mcuxpressoide - post install script fails
  dpkg --unpack mcuxpressoide-${IDE_VERSION}.x86_64.deb &&\
  rm /var/lib/dpkg/info/mcuxpressoide.postinst -f &&\
  dpkg --configure mcuxpressoide &&\
  apt-get install -yf &&\
  # manually run the postinstall script
  mkdir -p /usr/share/NXPLPCXpresso &&\
  chmod a+w /usr/share/NXPLPCXpresso &&\
  ln -s /usr/local/mcuxpressoide-${IDE_VERSION} /usr/local/mcuxpressoide

ENV TOOLCHAIN_PATH /usr/local/mcuxpressoide/ide/tools/bin
ENV PATH $TOOLCHAIN_PATH:$PATH    

RUN rm mcuxpressoide-${IDE_VERSION}.x86_64.deb.bin
RUN rm -rf mcu

1
谢谢! - Ed of the Mountain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接