如何在Windows下使用cmake生成使用Intel编译器的Visual Studio项目

尼克

我正在用C开发跨平台(Linux / Windows)应用程序。我已经厌倦了维护可用的Makefile和Visual Studio解决方案/项目,因此我想过渡到cmake。我在两个平台上都使用了Intel编译器。

我已经在Windows上下载了cmake 3.0,在Linux上下载了cmake 2.8(这是ubuntu 12.04存储库中的一个)。在Linux上,一切进展顺利,Makefiles已成功生成。只需运行即可:CC=icc CXX=icc cmake ..

但是,在Windows上,无论我尝试执行什么命令,都无法使用Intel Compiler。输出vcxproj始终使用MSVC编译器。

我尝试了以下命令:

cmake -G "Visual Studio 11 2012 Win64" -D CMAKE_C_COMPILER="C:/Program Files (x86)/Intel/Composer XE/bin/intel64/icl.exe" -D CMAKE_CXX_COMPILER="C:/Program Files (x86)/Intel/Composer XE/bin/intel64/icl.exe" ..

输出为:

-- The C compiler identification is MSVC 17.0.61030.0
-- The CXX compiler identification is MSVC 17.0.61030.0
-- Check for working C compiler using: Visual Studio 11 2012 Win64
-- Check for working C compiler using: Visual Studio 11 2012 Win64 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler using: Visual Studio 11 2012 Win64
-- Check for working CXX compiler using: Visual Studio 11 2012 Win64 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Configuring done
-- Generating done

当我将生成器更改为“ NMake Makefiles”时,则将icc设置为编译器。

-- The C compiler identification is Intel 14.0.3.20140422
-- The CXX compiler identification is Intel 14.0.3.20140422
-- Check for working C compiler: C:/Program Files (x86)/Intel/Composer XE/bin/intel64/icl.exe

我正在一个只有一个源文件的非常基本的项目上对此进行测试,因此我的CMakeLists.txt文件仅包含:

project(dummy_cmake)

add_executable(hellonikola main.c)

任何帮助是极大的赞赏!

聚苯乙烯

cmake-gui的行为相同。我选择指定一个不同的本机编译器,并给出icc的路径,并获得上述输出。

我也尝试在Windows上使用cmake 2.8,其行为是相同的。

尼克

我已经找到了答案,所以我将其发布,以防其他人遇到相同的问题。

解决方法是将此行添加到 CMakeLists.txt

set(CMAKE_GENERATOR_TOOLSET "Intel C++ Compiler XE 14.0" CACHE STRING "Platform Toolset" FORCE)

在此博客上发现了这一点,并对其进行了修改,以使用英特尔®编译器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Visual Studio 2017中使用CMake设置编译器选项

Visual Studio复制项目

Visual Studio在转换为2013的项目上使用较旧的2012编译器

在Visual Studio 2013中使用Roslyn编译器

如何配置cmake使用/ MP选项生成Visual Studio 2013+项目文件的方式

如何在Visual Studio 2015中使用roslyn C#编译器?

编译器指令如何在Visual Studio 2015中与project.json一起使用

如何在Visual Studio中将Linux编译添加到Cmake项目

在Visual Studio中使用64位编译器

使用Visual Studio编译器分析内联的C ++函数

使用Visual Studio创建cmake项目

如何使用CMake为LLVM生成64位Visual Studio项目?

如何使用Qt的应用清单生成Visual Studio项目?

如何在Windows和CMake上使用Visual Studio编译Mac OS X的C ++

Visual Studio 2017-如何使用CMake从源创建项目?

部署Visual Studio项目

CMake:将条件编译器标志添加到Visual Studio项目中

使用g ++编译器在Visual Studio中编译C ++程序会在最后生成%

Visual Studio“项目+项目”问题

如何使用MSBuild生成Visual Studio安装项目

C ++:使用Visual Studio编译器时的const指针

拆解Visual Studio Intel编译器C ++代码

XCode编译器错误,使用CMake构建的项目

如何为Ms Visual Studio社区安装Intel Fortran编译器?

编译器无法在使用cmake配置的Visual Studio项目中执行C ++ 11指令

使用CMake构建后,如何在Visual Studio中创建项目以使用OpenMesh?

如何在Visual Studio中使用更少的自动编译器

Visual Studio项目

使用 Visual Studio 2017 构建 SSDT 项目时如何将 /unsafe 标志传递给 C# 编译器