創(chuàng)建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" ]
在同目錄執(zhí)行下面的命令創(chuàng)建一個名為clang的鏡像
docker build -t clang .
設(shè)置本機的~/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
我的運行結(jié)果
a < 2
"./test.cpp"
"./a.out"