编译时C/C++编译器(cl.exe)crash

本文介绍了如何解决C/C++编译过程中遇到的编译器停止工作及PRJ0002错误的问题。通过定位到warning C4996和使用旧的C字符串函数,最终发现并解决了与sprintf函数中格式符%0x及static类型变量相关的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题症状:编译的时候,C/C++编译器stop work,error  PRJ0002。

 

针对这个问题,一般的常规解决方案已不适用。

 

已有的事实:

1、出错时编译的某一文件,而且编译的时候一般是自上而下。

 

2、由warning C4996(一般都是用旧的c字符串函数引起的)结合第一点事实迅速确定出问题的范围。注释掉编译ok,很显然有问题代码就在这个范围。

 

进一步缩小范围,确定问题在两句sprintf(我直觉上认为这两句有问题,如果按步就班的确定问题点也能解决),研究这两句sprintf的共性,我发现都用了控制格式符%0x,后面的变量都是static的类型的(一个指针,一个HANDLE,都是四字节类型的),于是强制转换为DWORD,至此问题解决。当然也没我描述的那么轻松,而且也有高手指点。

 

ps.说到这,什么是数学前言谈到数学的核心是直觉,不要为繁杂的公式所误导(按我的理解)。

 

 

 

(Brain) PS C:\Users\22655\Desktop\temp\VL-Grasp-main\GraspNet\knn> python setup.py install A module that was compiled using NumPy 1.x cannot be run in NumPy 2.0.1 as it may crash. To support both 1.x and 2.x versions of NumPy, modules must be compiled with NumPy 2.0. Some module may need to rebuild instead e.g. with 'pybind11>=2.12'. If you are a user of the module, the easiest solution will be to downgrade to 'numpy<2' or try to upgrade the affected module. We expect that some modules will need time to support NumPy 2. Traceback (most recent call last): File "C:\Users\22655\Desktop\temp\VL-Grasp-main\GraspNet\knn\setup.py", line 6, in <module> import torch File "D:\Application\anaconda\envs\Brain\lib\site-packages\torch\__init__.py", line 1477, in <module> from .functional import * # noqa: F403 File "D:\Application\anaconda\envs\Brain\lib\site-packages\torch\functional.py", line 9, in <module> import torch.nn.functional as F File "D:\Application\anaconda\envs\Brain\lib\site-packages\torch\nn\__init__.py", line 1, in <module> from .modules import * # noqa: F403 File "D:\Application\anaconda\envs\Brain\lib\site-packages\torch\nn\modules\__init__.py", line 35, in <module> from .transformer import TransformerEncoder, TransformerDecoder, \ File "D:\Application\anaconda\envs\Brain\lib\site-packages\torch\nn\modules\transformer.py", line 20, in <module> device: torch.device = torch.device(torch._C._get_default_device()), # torch.device('cpu'), D:\Application\anaconda\envs\Brain\lib\site-packages\torch\nn\modules\transformer.py:20: UserWarning: Failed to initialize NumPy: _ARRAY_API not found (Triggered internally at C:\cb\pytorch_1000000000000\work\torch\csrc\utils\tensor_numpy.cpp:84.) device: torch.device = torch.device(torch._C._get_default_device()), # torch.device('cpu'), running install D:\Application\anaconda\envs\Brain\lib\site-packages\setuptools\_distutils\cmd.py:90: SetuptoolsDeprecationWarning: setup.py install is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` directly. Instead, use pypa/build, pypa/installer or other standards-based tools. See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. ******************************************************************************** !! self.initialize_options() D:\Application\anaconda\envs\Brain\lib\site-packages\setuptools\_distutils\cmd.py:90: EasyInstallDeprecationWarning: easy_install command is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` and ``easy_install``. Instead, use pypa/build, pypa/installer or other standards-based tools. See https://github.com/pypa/setuptools/issues/917 for details. ******************************************************************************** !! self.initialize_options() running bdist_egg running egg_info writing knn_pytorch.egg-info\PKG-INFO writing dependency_links to knn_pytorch.egg-info\dependency_links.txt writing top-level names to knn_pytorch.egg-info\top_level.txt D:\Application\anaconda\envs\Brain\lib\site-packages\torch\utils\cpp_extension.py:500: UserWarning: Attempted to use ninja as the BuildExtension backend but we could not find ninja.. Falling back to using the slow distutils backend. warnings.warn(msg.format('we could not find ninja.')) reading manifest file 'knn_pytorch.egg-info\SOURCES.txt' writing manifest file 'knn_pytorch.egg-info\SOURCES.txt' installing library code to build\bdist.win-amd64\egg running install_lib running build_ext D:\Application\anaconda\envs\Brain\lib\site-packages\torch\utils\cpp_extension.py:381: UserWarning: Error checking compiler version for cl: [WinError 2] 系统找不到指定的文件。 warnings.warn(f'Error checking compiler version for {compiler}: {error}') running build_ext D:\Application\anaconda\envs\Brain\lib\site-packages\torch\utils\cpp_extension.py:381: UserWarning: Error checking compiler version for cl: [WinError 2] 系统找不到指定的文件。 warnings.warn(f'Error checking compiler version for {compiler}: {error}') error: [WinError 2] 系统找不到指定的文件。
最新发布
07-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值