cmake 或者 Visual Studio “\mkl\tools”不存在编译错误解决

问题

cmake 提示找不到编译器,vs命令行编译提示 [工作目录“\mkl\tools”不存在]

有些时候,我们需要安装intel的 Intel® Math Kernel Library (Intel® MKL) 。
https://software.intel.com/en-us/mkl
https://software.seek.intel.com/performance-libraries
这个倒霉玩意儿,虽然说免费。但是必须注册后才能下载。
而且!!!!需要你注册后的2个工作日后,才能下载。

应用了一段时间之后,你可能不用了,会卸载掉。
这个时候,问题就来了。
它会在你的系统留下遗产:

#比如在vs2015的目录下留下
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\x64\PlatformToolsets\v140\ImportBefore\Intel.Libs.MKL.v140.targets
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\x64\PlatformToolsets\v140\ImportAfter\Intel.Libs.MKL.v140.props
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\x64\PlatformToolsets\v140_xp\ImportBefore\Intel.Libs.MKL.v140_xp.props
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\x64\PlatformToolsets\v140_xp\ImportBefore\Intel.Libs.MKL.v140_xp.targets

如果你安装了TBB,同样会留下类似的

Intel.Libs.TBB.v140.props
Intel.Libs.TBB.v140.targets
Intel.Libs.TBB.v140_xp.props
Intel.Libs.TBB.v140_xp.targets

这时候,当你使用cmake configure的时候,当选择vs2017 v140,配置项,或者直接使用vs2015命令行编译的时候,就会提示错误。

error MSB6003: 指定的任务可执行文件“cmd.exe”未能运行。工作目录“\mkl\tools”不存在

cmake 提示从错误,表面上看是这样:

The C compiler identification is unknown
The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:2 (project):
  No CMAKE_C_COMPILER could be found.



CMake Error at CMakeLists.txt:2 (project):
  No CMAKE_CXX_COMPILER could be found.

当打开error.log时,提示【工作目录“\mkl\tools”不存在】。如下:

Configuring incomplete, errors occurred!
See also "D:/git/cdnunion/million/miner/xmrig/build/CMakeFiles/CMakeOutput.log".
See also "D:/git/cdnunion/million/miner/xmrig/build/CMakeFiles/CMakeError.log".

D:/git/cdnunion/million/miner/xmrig/build/CMakeFiles/CMakeError.log



Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler:  
Build flags: 
Id flags:  

The output was:
1
用于 .NET Framework 的 Microsoft (R) 生成引擎版本 15.7.180.61344
版权所有(C) Microsoft Corporation。保留所有权利。

生成启动时间为 2018-07-26 23:41:06。
节点 1 上的项目“D:\git\cdnunion\million\miner\xmrig\build\CMakeFiles\3.12.0\CompilerIdC\CompilerIdC.vcxproj”(默认目标)。
PrepareForBuild:
  正在创建目录“Debug\”。
  正在创建目录“Debug\CompilerIdC.tlog\”。
InitializeBuildStatus:
  正在创建“Debug\CompilerIdC.tlog\unsuccessfulbuild”,因为已指定“AlwaysCreate”。
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\x64\PlatformToolsets\v140\ImportBefore\Intel.Libs.MKL.v140.targets(62,5): error MSB6003: 指定的任务可执行文件“cmd.exe”未能运行。工作目录“\mkl\tools”不存在。 [D:\git\cdnunion\million\miner\xmrig\build\CMakeFiles\3.12.0\CompilerIdC\CompilerIdC.vcxproj]
已完成生成项目“D:\git\cdnunion\million\miner\xmrig\build\CMakeFiles\3.12.0\CompilerIdC\CompilerIdC.vcxproj”(默认目标)的操作 - 失败。

生成失败。

“D:\git\cdnunion\million\miner\xmrig\build\CMakeFiles\3.12.0\CompilerIdC\CompilerIdC.vcxproj”(默认目标) (1) ->
(SetVCMKLEnvironment 目标) -> 
  C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\x64\PlatformToolsets\v140\ImportBefore\Intel.Libs.MKL.v140.targets(62,5): error MSB6003: 指定的任务可执行文件“cmd.exe”未能运行。工作目录“\mkl\tools”不存在。 [D:\git\cdnunion\million\miner\xmrig\build\CMakeFiles\3.12.0\CompilerIdC\CompilerIdC.vcxproj]

    0 个警告
    1 个错误

已用时间 00:00:00.41

解决办法

1 删除文件

Intel.Libs.MKL.v140.props
Intel.Libs.MKL.v140.targets

注意:在原目录下修改文件名称,无法解决问题

2 重新安装MKL库

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
CMake是一个跨平台的建构系统生成工具,它可以用来自动生成各种操作系统和编译器所需的编译项目。在Visual Studio中使用CMake进行编译需要进行以下步骤: 1. 打开Visual Studio,并确保已经安装了CMake插件。可以在"工具"->"扩展和更新"->"联机"中搜索CMake插件并安装。 2. 在Visual Studio中创建一个新的项目,选择"CMake"项目类型。这将在项目文件夹中创建一个`CMakeLists.txt`文件和一个`main.cpp`文件。 3. 打开`CMakeLists.txt`文件,并编写编译项目所需的CMake命令。CMake命令用于描述源代码文件、所需的库和其他依赖项等。例如,可以使用`add_executable`命令添加一个可执行文件,使用`target_link_libraries`命令链接所需的库等。 4. 在Visual Studio的菜单栏中选择"CMake"->"配置",选择所需的构建系统和目标平台。 5. 点击"CMake"->"生成"或按下F7键开始生成项目。CMake将读取`CMakeLists.txt`文件,并根据其中的命令生成Visual Studio项目。 6. 生成完成后,可以在Build目录中找到生成的Visual Studio解决方案文件。 7. 打开解决方案文件后,即可在Visual Studio中进行编辑和调试。可以选择所需的配置和平台,并运行或调试项目。 总结起来,使用CMakeVisual Studio中进行编译可以通过创建CMake项目,编写`CMakeLists.txt`文件描述编译项目所需的配置和依赖项,然后使用CMake生成Visual Studio项目,最后在Visual Studio中进行编辑和调试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值