我在Windows 7 64位下构建项目时遇到问题。我已经在SO上看过类似的问题,但没有找到合适的解决方案。我跑的时候:
cmake -v -G "MSYS Makefiles" CMakeLists.txt
它给了我以下输出:
> -- The C compiler identification is unknown
-- Check for working C compiler: c:/MinGW/bin/gcc.exe
-- Check for working C compiler: c:/MinGW/bin/gcc.exe -- broken
CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.0/Modules/CMakeTestCCo
mpiler.cmake:61 (message):
The C compiler "c:/MinGW/bin/gcc.exe" is not able to compile a simple test
program.
It fails with the following output:
Change Dir: C:/Users/Sony/Documents/Computer_Graphics/assignment_01/programmi
ng/glfw/CMakeFiles/CMakeTmp
Run Build Command:"C:/MinGW/msys/1.0/bin/make.exe"
"cmTryCompileExec1735268707/fast"
/usr/bin/make -f CMakeFiles/cmTryCompileExec1735268707.dir/build.make
CMakeFiles/cmTryCompileExec1735268707.dir/build
make[1]: Entering directory
`/c/Users/Sony/Documents/Computer_Graphics/assignment_01/programming/glfw/CMak
eFiles/CMakeTmp'
"/C/Program Files (x86)/CMake/bin/cmake.exe" -E cmake_progress_report
/C/Users/Sony/Documents/Computer_Graphics/assignment_01/programming/glfw/CMake
Files/CMakeTmp/CMakeFiles
1
Building C object
CMakeFiles/cmTryCompileExec1735268707.dir/testCCompiler.c.obj
/c/MinGW/bin/gcc.exe -o
CMakeFiles/cmTryCompileExec1735268707.dir/testCCompiler.c.obj -c
/C/Users/Sony/Documents/Computer_Graphics/assignment_01/programming/glfw/CMake
Files/CMakeTmp/testCCompiler.c
make[1]: ***
[CMakeFiles/cmTryCompileExec1735268707.dir/testCCompiler.c.obj] Error 1
make[1]: Leaving directory
此外,我收到下一条错误消息3次,在编译尝试期间,它显示"过程入口点libintl_setlocale无法位于库libintl-8.dll"
CMakeError.log:
编译C编译器标识源文件 " CMakeCCompilerId.c"失败。编译器:c:/MinGW/bin/gcc.exe构建 flags:Id标志:
输出为:1
编译C编译器标识源文件 " CMakeCCompilerId.c"失败。编译器:c:/MinGW/bin/gcc.exe构建 flags:Id标志:-c
输出为:1
编译C编译器标识源文件 " CMakeCCompilerId.c"失败。编译器:c:/MinGW/bin/gcc.exe构建 flags:Id标志:-Aa
输出为:1:0:1:错误:丢失'('之后 谓词
使用""检查C编译器是否为IAR。不匹配" IAR。+ 编译器":gcc.exe:致命错误:没有输入文件编译 终止。确定C编译器是否工作失败 以下输出:更改目录: C:/用户/索尼/文档/ Computer_Graphics / assignment_01 /编程/ GLFW / CMakeFiles / CMakeTmp
运行Build命令:" C:/MinGW/msys/1.0/bin/make.exe" " cmTryCompileExec2453403923 /快" / usr / bin / make -f CMakeFiles / cmTryCompileExec2453403923.dir / build.make CMakeFiles / cmTryCompileExec2453403923.dir / build make [1]:进入 目录
/c/Users/Sony/Documents/Computer_Graphics/assignment_01/programming/glfw/CMakeFiles/CMakeTmp' "/c/Program Files (x86)/CMake/bin/cmake.exe" -E cmake_progress_report /C/Users/Sony/Documents/Computer_Graphics/assignment_01/programming/glfw/CMakeFiles/CMakeTmp/CMakeFiles 1 Building C object CMakeFiles/cmTryCompileExec2453403923.dir/testCCompiler.c.obj /c/MinGW/bin/gcc.exe -o CMakeFiles/cmTryCompileExec2453403923.dir/testCCompiler.c.obj -c /C/Users/Sony/Documents/Computer_Graphics/assignment_01/programming/glfw/CMakeFiles/CMakeTmp/testCCompiler.c make[1]: Leaving directory
/ C /用户/索尼/文档/ Computer_Graphics / assignment_01 /编程/ GLFW / CMakeFiles / CMakeTmp' make [1]: * [CMakeFiles / cmTryCompileExec2453403923.dir / testCCompiler.c.obj]错误 1 make:* [cmTryCompileExec2453403923 / fast]错误2编译C编译器标识源文件 " CMakeCCompilerId.c"失败。编译器:c:/MinGW/bin/gcc.exe构建 flags:Id标志:
输出为:1
编译C编译器标识源文件 " CMakeCCompilerId.c"失败。编译器:c:/MinGW/bin/gcc.exe构建 flags:Id标志:-c
输出为:1
编译C编译器标识源文件 " CMakeCCompilerId.c"失败。编译器:c:/MinGW/bin/gcc.exe构建 flags:Id标志:-Aa
输出为:1:0:1:错误:丢失'('之后 谓词
使用""检查C编译器是否为IAR。不匹配" IAR。+ 编译器":gcc.exe:致命错误:没有输入文件编译 终止。确定C编译器是否工作失败 以下输出:更改目录: C:/用户/索尼/文档/ Computer_Graphics / assignment_01 /编程/ GLFW / CMakeFiles / CMakeTmp
运行Build命令:" C:/MinGW/msys/1.0/bin/make.exe" " cmTryCompileExec78678067 /快" / usr / bin / make -f CMakeFiles / cmTryCompileExec78678067.dir / build.make CMakeFiles / cmTryCompileExec78678067.dir / build make [1]:进入 目录
/c/Users/Sony/Documents/Computer_Graphics/assignment_01/programming/glfw/CMakeFiles/CMakeTmp' "/C/Program Files (x86)/CMake/bin/cmake.exe" -E cmake_progress_report /C/Users/Sony/Documents/Computer_Graphics/assignment_01/programming/glfw/CMakeFiles/CMakeTmp/CMakeFiles 1 Building C object CMakeFiles/cmTryCompileExec78678067.dir/testCCompiler.c.obj /c/MinGW/bin/gcc.exe -o CMakeFiles/cmTryCompileExec78678067.dir/testCCompiler.c.obj -c /C/Users/Sony/Documents/Computer_Graphics/assignment_01/programming/glfw/CMakeFiles/CMakeTmp/testCCompiler.c make[1]: make[1]: Leaving directory
/ C /用户/索尼/文档/ Computer_Graphics / assignment_01 /编程/ GLFW / CMakeFiles / CMakeTmp' * [CMakeFiles / cmTryCompileExec78678067.dir / testCCompiler.c.obj]错误1 make:* [cmTryCompileExec78678067 / fast]错误2编译C编译器标识源文件 " CMakeCCompilerId.c"失败。编译器:c:/MinGW/bin/gcc.exe构建 flags:Id标志:
输出为:1
编译C编译器标识源文件 " CMakeCCompilerId.c"失败。编译器:c:/MinGW/bin/gcc.exe构建 flags:Id标志:-c
输出为:1
编译C编译器标识源文件 " CMakeCCompilerId.c"失败。编译器:c:/MinGW/bin/gcc.exe构建 flags:Id标志:-Aa
输出为:1:0:1:错误:丢失'('之后 谓词
使用""检查C编译器是否为IAR。不匹配" IAR。+ 编译器":gcc.exe:致命错误:没有输入文件编译 终止。确定C编译器是否工作失败 以下输出:更改目录: C:/用户/索尼/文档/ Computer_Graphics / assignment_01 /编程/ GLFW / CMakeFiles / CMakeTmp
运行Build命令:" C:/MinGW/msys/1.0/bin/make.exe" " cmTryCompileExec1735268707 /快" / usr / bin / make -f CMakeFiles / cmTryCompileExec1735268707.dir / build.make CMakeFiles / cmTryCompileExec1735268707.dir / build make [1]:进入 目录
/c/Users/Sony/Documents/Computer_Graphics/assignment_01/programming/glfw/CMakeFiles/CMakeTmp' "/C/Program Files (x86)/CMake/bin/cmake.exe" -E cmake_progress_report /C/Users/Sony/Documents/Computer_Graphics/assignment_01/programming/glfw/CMakeFiles/CMakeTmp/CMakeFiles 1 Building C object CMakeFiles/cmTryCompileExec1735268707.dir/testCCompiler.c.obj /c/MinGW/bin/gcc.exe -o CMakeFiles/cmTryCompileExec1735268707.dir/testCCompiler.c.obj -c /C/Users/Sony/Documents/Computer_Graphics/assignment_01/programming/glfw/CMakeFiles/CMakeTmp/testCCompiler.c make[1]: *** [CMakeFiles/cmTryCompileExec1735268707.dir/testCCompiler.c.obj] Error 1 make[1]: Leaving directory
/ C /用户/索尼/文档/ Computer_Graphics / assignment_01 /编程/ GLFW / CMakeFiles / CMakeTmp' make:*** [cmTryCompileExec1735268707 / fast]错误2编译C编译器标识源文件 " CMakeCCompilerId.c"失败。编译器:c:/MinGW/bin/gcc.exe构建 flags:Id标志:
输出为:1
编译C编译器标识源文件 " CMakeCCompilerId.c"失败。编译器:c:/MinGW/bin/gcc.exe构建 flags:Id标志:-c
输出为:1
我的路径环境变量:
C:\ Program Files(x86)\ PC Connectivity Solution \; C:\ Program Files \ Common Files \ Microsoft Shared \ Windows Live; C:\ Program Files (x86)\ Common Files \ Microsoft Shared \ Windows Live; c:\ Program Files (x86)\ Intel \ iCLS Client \; c:\ Program Files \ Intel \ iCLS Client \; C:\ Program Files(x86)\ AMD APP \ bin \ x86_64; C:\ Program Files (86)\ AMD APP \ BIN \ 86;的%SystemRoot%\ SYSTEM32;的%SystemRoot%;%SYSTEMROOT%\ SYSTEM32 \ WBEM;%SYSTEMROOT%\ SYSTEM32 \ WindowsPowerShell \ V1.0 \; C:\ PROGRAM 文件(x86)\ ATI Technologies \ ATI.ACE \ Core-Static; C:\ Program Files \ Intel \ Intel(R)管理引擎组件\ DAL; C:\ Program Files \ Intel \ Intel(R)Management Engine Components \ IPT; C:\ Program Files (x86)\ Intel \ Intel(R)管理引擎组件\ DAL; C:\ Program Files (x86)\ Intel \ Intel(R)管理引擎组件\ IPT; C:\ Program Files \ Sony \ VAIO Improvement \; C:\ Program Files(x86)\ Sony \ VAIO Startup 设置工具; C:\ Program Files(x86)\ Windows Live \ Shared; c:\ Program 文件(x86)\ Microsoft SQL Server \ 100 \ Tools \ Binn \; c:\ Program Files \ Microsoft SQL Server \ 100 \ Tools \ Binn \; c:\ Program Files \ Microsoft SQL Server \ 100 \ DTS \ Binn \; C:\ Program Files (86)\ MVActiveX \; C:\的Java \ jdk1.7.0_09 \ BIN; C:\ PROGRAM Files \ Microsoft \ Web Platform Installer \; C:\ Program Files (x86)\ Microsoft ASP.NET \ ASP.NET网页\ v1.0 \; C:\ Program Files (x86)\ Windows Kits \ 8.0 \ Windows Performance Toolkit \; C:\ Program Files \ Microsoft SQL Server \ 110 \ Tools \ Binn \; C:\ Program 文件\ TortoiseHg \; C:\ PROGRAM FILES \ MATLAB \ R2013a \运行\ Win64平台; C:\ PROGRAM Files \ MATLAB \ R2013a \ bin; C:\ MinGW \ bin; C:\ Program Files(x86)\ CMake \ bin
我安装并重新安装了mingw并调查了我的路径变量,但仍然没有解决方案。任何想法,我错了吗?
答案 0 :(得分:7)
我刚刚找到答案:我的路径中有另一个libintl-8.dll。
从命令行执行此操作:
where libintl-8.dll
然后重命名除MinGW树中的所有内容之外的所有内容。
如果失败,则可能需要重新安装MinGW树。祝你好运。
答案 1 :(得分:1)
在System32 / SysWOW64中删除libintl-8.dll,它应该可以正常工作。
答案 2 :(得分:0)
这是一个有点无知的猜测,但libintl-8.dll的问题可能来自路径问题。在您的路径中的某个位置,您可以使用具有不同入口点的旧版本的lib。确保您拥有最新版本的MinGW和所有相关库,然后尝试将MinGW \ bin移动到路径变量的顶部。
有关此问题的另一个示例,请参阅:MinGW "The procedure entry point libiconv could not be located ..."
这个相关问题的答案帮助我解决了我遇到的类似问题。