WSL:make在使用-j时失败
WSL: make fails when using -j
我正在为我的密码学课程做一个项目,我一直在使用Linux的Windows子系统。直到最近,我还能够使用make -j
快速构建我的整个项目。
最近,我开始遇到如下编译错误。奇怪的是,我只使用make
(没有-j
)编译没有问题
因为这以前工作得很好,所以我不认为这个问题与我的makefile中指定的依赖关系有任何关系。(我的大部分代码都在头文件中,因为模板)
In file included from /usr/include/stdlib.h:314:0,
from /usr/include/c++/5/cstdlib:72,
from /usr/include/c++/5/ext/string_conversions.h:41,
from /usr/include/c++/5/bits/basic_string.h:5249,
from /usr/include/c++/5/string:52,
from tests/cryptomath/../../catch.hpp:207,
from tests/cryptomath/test_extgcd.cpp:2:
/usr/include/x86_64-linux-gnu/sys/types.h:219:25: fatal error: /home/ipiano/[student id]/Documents/Code/Homework/512/project/modules/module_crypto/unittests/../libclassiccrypto/affine/headers/sys/select.h: Invalid argument
在我看来,编译器试图在我的项目目录中找到c++源文件(这个特定错误中的sys/select.h),这意味着可能存在路径问题?
我最近唯一能想到的变化是,IT批准了Creator的更新,我安装了它,但我不知道它是否相关。
如果有人看到过这种行为或类似的错误,并且知道如何解决,我们将不胜感激。
---------编辑--------
能够缩小到我的主生成文件所包含的特定生成文件。它定义了部分目标,但不是所有目标。仍然不确定为什么-j
标志会让这件事曝光,但至少它现在正在工作
我也遇到了同样的问题:对于N>1,使用"make-jN"时编译失败。经过一些研究,我发现了这里描述的相同问题。
这个问题可能是由WSL的Windows文件系统插件DrvFs中引入的错误引起的,至少在Windows版本16273.1000、16299.19和16299.64(我的)中会发生这种情况。16251版本中不会发生这种情况。
据此,该错误已在Windows Build 16299.98上修复。
由于公司政策的原因,我无法更新我的Windows,也无法执行此解决方案,因此我将文件从/mnt/c
移动到/home/<username>
,并且编译后没有出现任何问题。
相关文章:
- 如果没有malloc,链表实现将失败
- 模板参数替换失败,并且未完成隐式转换
- 具有默认模板参数的多态类的模板推导失败
- 视图中的参数推导失败:take_while
- 链接到自行创建的dll失败
- 带有特殊路径部分的"std::filesystem::weakly_canonical"失败
- GetShortPathName在网络驱动器上使用中文文件夹时失败
- gcc和c++17的过载解析失败
- 为什么使用 P/Invoke 调用 dll 时,某些计算机中的 LoadLibrary 失败?
- 在WSL:configure_file上对config_file的每次调用都失败:配置文件时出现问题
- "Make"失败并出现 Clang 错误 - 如何从 Clang 获得错误?
- make:致命错误:目标命令失败
- MAKE/CMAKE子目录链接到外部库的链接失败
- gRPC 安装失败"make"
- WSL:make在使用-j时失败
- make在swig-create-ruby包装器上失败
- 为什么"make distcheck"在这个非常基本的"Hello, World!"自动工具示例中失败?
- MS链接从gnu-make失败,但从cmd行工作
- make find_package(OpenGL REQUIRED)失败,没有任何错误消息
- make add_custom_command失败,目标被删除