docker - 带有 cmake 错误的 Docker:ForceToRelativePath 失败
问题描述
我一直在尝试使用 cmake 在 docker 中编译一个项目。但是,我收到以下错误:
cmake: /build/cmake-pCygIN/cmake-3.13.4/Source/cmOutputConverter.cxx:125: static std::__cxx11::string cmOutputConverter::ForceToRelativePath(const string&, const string&): Assertion `local_path.empty() || local_path[local_path.size() - 1] != '/'' failed.
这是使用以下 Dockerfile,用于 helloworld c 脚本
WORKDIR .
COPY ./ ./
RUN apt-get update && apt-get -y install cmake
WORKDIR ./build
RUN cmake .. && make
cmake 命令在我的家庭环境中运行良好。我想这是因为我没有在 docker 环境中安装一些东西,但我不确定它会是什么。
解决方案
如果其他人遇到此问题,则问题是在根目录中运行 cmake。将所有代码移动到一个./src/
文件中,并将 dockerfile 更改为:
FROM python:3.7
WORKDIR .
COPY ./ ./
RUN apt-get update && apt-get -y install cmake
WORKDIR ./build
RUN cmake ../src && make
修复问题
推荐阅读
- ruby-on-rails - 如何在视图中处理属于另一个模型并给出其 ID 的视图应该显示不同的信息?
- regex - 正则表达式查询匹配位置
- javascript - 无限水平旋转木马的悬停暂停
- python - Python在定义时部分确定参数的解决方法?
- algorithm - 最短路径算法的时间复杂度
- javascript - 如何使用 Bootstrap 创建响应式轮播嵌入式卡片?
- mysql - 使用 sql 查询重新排序记录(重写为单个查询)
- r - 如何在R中生成具有特定开始日期/时间的日期和时间序列
- android - 如何清理一些EditText?
- javascript - 我的按钮在移动设备上不起作用,但在桌面上可以正常工作?