發現問題:(使用的環境是vs2017)
D:\01_cmake_win\winlib.c: fatal error C1001: 編譯器中發生內部錯誤。
(編譯器文件“msc1.cpp”,第 1511 行)
要解決此問題,請嘗試簡化或更改上面所列位置附近的程序。
請選擇 Visual C++
“幫助”菜單上的“技術支持”命令,或打開技術支持幫助文件來獲得詳細信息。
D:\Program Files (x86)\vs2017\VC\Tools\MSVC\14.13.26128\bin\Hostx64\x86\cl.exe 中有內部編譯器錯誤。系統將會提示你稍後向 Microsoft 發送錯誤報告。
網上搜了下基本沒找到答案,於是嘗試 cmake -G
D:\01_cmake_win>cmake -G
CMake Error: No generator specified for -G
Generators
Visual Studio 14 2015 [arch] = Generates Visual Studio 2015 project files.
Optional [arch] can be "Win64" or "ARM".
Visual Studio 12 2013 [arch] = Generates Visual Studio 2013 project files.
Optional [arch] can be "Win64" or "ARM".
Visual Studio 11 2012 [arch] = Generates Visual Studio 2012 project files.
Optional [arch] can be "Win64" or "ARM".
Visual Studio 10 2010 [arch] = Generates Visual Studio 2010 project files.
Optional [arch] can be "Win64" or "IA64".
Visual Studio 9 2008 [arch] = Generates Visual Studio 2008 project files.
Optional [arch] can be "Win64" or "IA64".
Visual Studio 8 2005 [arch] = Generates Visual Studio 2005 project files.
Optional [arch] can be "Win64".
Visual Studio 7 .NET 2003 = Deprecated. Generates Visual Studio .NET
2003 project files.
Borland Makefiles = Generates Borland makefiles.
NMake Makefiles = Generates NMake makefiles.
NMake Makefiles JOM = Generates JOM makefiles.
Green Hills MULTI = Generates Green Hills MULTI files
(experimental, work-in-progress).
MSYS Makefiles = Generates MSYS makefiles.
MinGW Makefiles = Generates a make file for use with
mingw32-make.
Unix Makefiles = Generates standard UNIX makefiles.
Ninja = Generates build.ninja files.
Watcom WMake = Generates Watcom WMake makefiles.
Android Gradle - Ninja = Generates Android Gradle build files.
Android Gradle - Unix Makefiles
= Generates Android Gradle build files.
CodeBlocks - MinGW Makefiles = Generates CodeBlocks project files.
CodeBlocks - NMake Makefiles = Generates CodeBlocks project files.
CodeBlocks - Ninja = Generates CodeBlocks project files.
CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
CodeLite - MinGW Makefiles = Generates CodeLite project files.
CodeLite - NMake Makefiles = Generates CodeLite project files.
CodeLite - Ninja = Generates CodeLite project files.
CodeLite - Unix Makefiles = Generates CodeLite project files.
Eclipse CDT4 - MinGW Makefiles
= Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 - NMake Makefiles
= Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 - Ninja = Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.
Kate - MinGW Makefiles = Generates Kate project files.
Kate - NMake Makefiles = Generates Kate project files.
Kate - Ninja = Generates Kate project files.
Kate - Unix Makefiles = Generates Kate project files.
Sublime Text 2 - MinGW Makefiles
= Generates Sublime Text 2 project files.
Sublime Text 2 - NMake Makefiles
= Generates Sublime Text 2 project files.
Sublime Text 2 - Ninja = Generates Sublime Text 2 project files.
Sublime Text 2 - Unix Makefiles
= Generates Sublime Text 2 project files.
從提示可知當前cmake支持的最高vs版本爲 :Visual Studio 14 2015
於是在vs2010下嘗試
D:\01_cmake_win>cmake --build ./ --config Release
-- Configuring done
-- Generating done
-- Build files have been written to: D:/01_cmake_win
[ 50%] Building C object CMakeFiles/win_test.dir/winlib.c.obj
cl: 命令行 warning D9025 :正在重寫“/MDd”(用“/MT”)
winlib.c
[100%] Linking C shared library bin\win_test.dll
[100%] Built target win_test