美文网首页
使用Docker和Clang 7进行C++ 17开发

使用Docker和Clang 7进行C++ 17开发

作者: redexpress | 来源:发表于2018-11-23 11:22 被阅读48次

创建Dockerfile如下:

FROM ubuntu:16.04
RUN apt-get update && apt-get install -y build-essential curl xz-utils && \
  rm -rf /var/lib/apt/lists/* && \
  curl -SL http://releases.llvm.org/7.0.0/clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz | tar -xJC . && \
  mv clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-16.04 clang_7.0.0 && \
  echo 'export PATH=/clang_7.0.0/bin:$PATH' >> ~/.bashrc && \
  echo 'export LD_LIBRARY_PATH=/clang_7.0.0/lib:LD_LIBRARY_PATH' >> ~/.bashrc
CMD [ "/bin/bash" ]

在同目录执行下面的命令创建一个名为clang的镜像

docker build -t clang .

设置本机的~/share为虚拟目录

docker run -it -v ~/share:/share clang /bin/bash

准备简单的测试代码test.cpp如下:

#include <iostream>
#include <filesystem>

int main() {
    if(int a = 1; a < 2) {
        std::cout << "a < 2" << std::endl;
    }
    for(auto &file : std::filesystem::recursive_directory_iterator("./")) {
        std::cout << file.path() << '\n';
    }
    return 0;
}

使用下面命令编译:

clang++ -std=c++17 -stdlib=libc++ test.cpp -lc++fs

我的运行结果

a < 2
"./test.cpp"
"./a.out"

相关文章

网友评论

      本文标题:使用Docker和Clang 7进行C++ 17开发

      本文链接:https://www.haomeiwen.com/subject/vzgdqqtx.html