MantisBT - CMake
View Issue Details
0008516CMakeCMakepublic2009-02-11 16:142016-06-10 14:30
Ludovic Magerand 
Bill Hoffman 
normalmajoralways
closedmoved 
CMake-2-6 
 
0008516: Failled to test C compiler with MinGW
I was trying to generate Code::Blocks project using CMake 2.6.2-patch2 and this is failling with error like the one in the log provided as additional information.

I tested with other generators using MinGW, and they all fails with the exact same error.
I also tested with the nightly build of CMake 2.7 of a few days ago, the same thing happen.

I now use the latest MinGW and utils freshly downloaded but I originaly tried with the MinGW embedded into Code::Blocks 8.02, same happen on both.

As I'm reading the log again, I just remarks that there is a "é" in the path to the written file, so I just tested on a new directory without such character and it's working.

I'm not sure if it's a CMake or MinGW bug but as I found it with CMake I report it there.
The C compiler identification is GNU
The CXX compiler identification is GNU
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/CMake 2.6/share/cmake-2.6/Modules/CMakeTestCCompiler.cmake:32 (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:/Documents and Settings/Propriétaire/Mes documents/Lasmea/Essai/CMakeFiles/CMakeTmp

  

  Run Build Command:C:/MinGW/bin/mingw32-make.exe "cmTryCompileExec/fast"

  C:/MinGW/bin/mingw32-make.exe -f CMakeFiles\cmTryCompileExec.dir\build.make
  CMakeFiles/cmTryCompileExec.dir/build

  mingw32-make.exe[1]: Entering directory `C:/Documents and
  Settings/Propriétaire/Mes documents/Lasmea/Essai/CMakeFiles/CMakeTmp'

  "C:\Program Files\CMake 2.6\bin\cmake.exe" -E cmake_progress_report
  "C:\Documents and Settings\Propriétaire\Mes
  documents\Lasmea\Essai\CMakeFiles\CMakeTmp\CMakeFiles" 1

  Building C object CMakeFiles/cmTryCompileExec.dir/testCCompiler.c.obj

  C:\MinGW\bin\gcc.exe -o CMakeFiles\cmTryCompileExec.dir\testCCompiler.c.obj
  -c "C:\Documents and Settings\Propriétaire\Mes
  documents\Lasmea\Essai\CMakeFiles\CMakeTmp\testCCompiler.c"

  gcc.exe: C:\Documents and Settings\PropriÚtaire\Mes
  documents\Lasmea\Essai\CMakeFiles\CMakeTmp\testCCompiler.c: No such file or
  directory

  gcc.exe: no input files

  mingw32-make.exe[1]: ***
  [CMakeFiles/cmTryCompileExec.dir/testCCompiler.c.obj] Error 1

  mingw32-make.exe[1]: Leaving directory `C:/Documents and
  Settings/Propriétaire/Mes documents/Lasmea/Essai/CMakeFiles/CMakeTmp'

  mingw32-make.exe: *** [cmTryCompileExec/fast] Error 2

  

  

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:2 (project)


Configuring incomplete, errors occurred!
No tags attached.
Issue History
2009-02-11 16:14Ludovic MagerandNew Issue
2009-02-12 05:08Ludovic MagerandNote Added: 0014908
2009-02-12 11:55Bill HoffmanNote Added: 0014912
2009-02-12 11:55Bill HoffmanStatusnew => assigned
2009-02-12 11:55Bill HoffmanAssigned To => Bill Hoffman
2009-02-13 06:49Ludovic MagerandNote Added: 0014923
2009-02-13 09:17Bill HoffmanNote Added: 0014925
2009-02-14 05:50Ludovic MagerandNote Added: 0014940
2010-03-28 21:51Bill HoffmanNote Added: 0020023
2015-05-19 03:00SergeyNote Added: 0038772
2016-06-10 14:27Kitware RobotNote Added: 0041501
2016-06-10 14:27Kitware RobotStatusassigned => resolved
2016-06-10 14:27Kitware RobotResolutionopen => moved
2016-06-10 14:30Kitware RobotStatusresolved => closed

Notes
(0014908)
Ludovic Magerand   
2009-02-12 05:08   
After having successfuly generated the Code::Blocks project file, I opened it and tried to compile the project.

The result is a failure because it fails to get the source files which where also on a path containing a "é".
So I also moved the source dir to something whitout such character and it worked nicely.

I took the time to get a closer look on the generated files, the problem is that those files are UTF-8 encoded and so are the differents filename, which on Windows is incorrect as the filesystem store filenames in another encoding.

Maybe the bug is upstream as MinGW should maybe convert filenames and directories in the system encoding ?
(0014912)
Bill Hoffman   
2009-02-12 11:55   
Can you try setting LC_ALL=POSIX and LC_MESSAGES=C before running CMake?
(0014923)
Ludovic Magerand   
2009-02-13 06:49   
I still get the same error.
(0014925)
Bill Hoffman   
2009-02-13 09:17   
Can you compile a file in this directory:
PropriÚtaire

Without CMake?

gcc -c C:\Documents and Settings\PropriÚtaire\foo.c

If not, then this is not a CMake bug, and there is nothing that can be done from CMake.
(0014940)
Ludovic Magerand   
2009-02-14 05:50   
I tried 3 differents way to do this, they all succeded to compile foo.c.
The two firsts one are :
- In console being in the directory of foo.c and running gcc -o foo.exe foo.c
- In console being in C:\ and running gcc -o "C:\Documents and Settings\Propriétaire\Mes documents\Lasmea\foo.exe" "C:\Documents and Settings\Propriétaire\Mes documents\Lasmea\foo.c"

But in those case, the "é" is correctly encoded as it's the Windows shell that generate it (either beeing in th current working directory or as the parameter).

The other test I did was using Code::Blocks, and it's working fine too. So Code::Blocks generate correctly encoded strings, meaning that it's possible for CMake too I guess.


Now I'm looking back at the log, and I see that at some places CMake generate correctly encoded string as all the first lines are actualy good.
CMake is able to create the directories "C:/Documents and Settings/Propriétaire/Mes documents/Lasmea/Essai/CMakeFiles/CMakeTmp" and go into it.

But when it tries to write the test file "testCCompiler.c" in this directory, then it use a badly encoded string resulting in a failure to create it (there is no such file in this directory).

Maybe the bug is only around the creation of this test file ?
(0020023)
Bill Hoffman   
2010-03-28 21:51   
Try this:

In an empty directory:

cd newdir
cmake -G "The generator you are using" --debug-trycompile

Obviously replace the above string with the generator that is causing you the trouble...

This will leave the temporary files in place. You can then do this:

cd CMakeFiles/CMakeTmp

make

That will run the makefile that is failing. If you can figure out how to fix that makefile that might help.

Looks like the best way to get this working, would be to install CMake into a directory that does not have international chars in it.
(0038772)
Sergey   
2015-05-19 03:00   
The bug is still not fixed with the latest cmake.

here is an example of output

[C:\Users\rion\Desktop\Psi+ Проджект\qca]"\Program Files (x86)\CMake\bin\cmake.exe" -G "MinGW Makefiles" --debug-trycompile
debug trycompile on
-- The C compiler identification is GNU 4.9.1
-- The CXX compiler identification is GNU 4.9.1
-- Check for working C compiler: C:/Qt/Tools/mingw491_32/bin/gcc.exe
-- Check for working C compiler: C:/Qt/Tools/mingw491_32/bin/gcc.exe -- broken
CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.2/Modules/CMakeTestCCompiler.cmake:61 (message):
  The C compiler "C:/Qt/Tools/mingw491_32/bin/gcc.exe" is not able to compile
  a simple test program.

  It fails with the following output:

   Change Dir: C:/Users/rion/Desktop/Psi+ ╨Я╤А╨╛╨┤╨╢╨╡╨║╤В/qca/CMakeFiles/CMakeTmp



  Run Build Command:"C:/Qt/Tools/mingw491_32/bin/mingw32-make.exe"
  "cmTryCompileExec1013668568/fast"

  C:/Qt/Tools/mingw491_32/bin/mingw32-make.exe -f
  CMakeFiles\cmTryCompileExec1013668568.dir\build.make
  CMakeFiles/cmTryCompileExec1013668568.dir/build

  mingw32-make.exe[1]: Entering directory 'C:/Users/rion/Desktop/Psi+
  ╧ЁюфцхъЄ/qca/CMakeFiles/CMakeTmp'

  "C:\Program Files (x86)\CMake\bin\cmake.exe" -E cmake_progress_report
  "C:\Users\rion\Desktop\Psi+
  ╨Я╤А╨╛╨┤╨╢╨╡╨║╤В\qca\CMakeFiles\CMakeTmp\CMakeFiles" 1

  Building C object
  CMakeFiles/cmTryCompileExec1013668568.dir/testCCompiler.c.obj

  C:\Qt\Tools\mingw491_32\bin\gcc.exe -o
  CMakeFiles\cmTryCompileExec1013668568.dir\testCCompiler.c.obj -c
  "C:\Users\rion\Desktop\Psi+
  ╨Я╤А╨╛╨┤╨╢╨╡╨║╤В\qca\CMakeFiles\CMakeTmp\testCCompiler.c"

  gcc.exe: error: C:\Users\rion\Desktop\Psi+
  ╨Я╤А╨╛╨┤╨╢╨╡╨║╤В\qca\CMakeFiles\CMakeTmp\testCCompiler.c: No such file or
  directory

  gcc.exe: fatal error: no input files

  compilation terminated.

  mingw32-make.exe[1]: ***
  [CMakeFiles/cmTryCompileExec1013668568.dir/testCCompiler.c.obj] Error 1

  CMakeFiles\cmTryCompileExec1013668568.dir\build.make:56: recipe for target
  'CMakeFiles/cmTryCompileExec1013668568.dir/testCCompiler.c.obj' failed

  mingw32-make.exe[1]: Leaving directory 'C:/Users/rion/Desktop/Psi+
  ╧ЁюфцхъЄ/qca/CMakeFiles/CMakeTmp'

  makefile:116: recipe for target 'cmTryCompileExec1013668568/fast' failed

  mingw32-make.exe: *** [cmTryCompileExec1013668568/fast] Error 2





  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:9 (project)


-- Configuring incomplete, errors occurred!
See also "C:/Users/rion/Desktop/Psi+ ╨Я╤А╨╛╨┤╨╢╨╡╨║╤В/qca/CMakeFiles/CMakeOutput.log".
See also "C:/Users/rion/Desktop/Psi+ ╨Я╤А╨╛╨┤╨╢╨╡╨║╤В/qca/CMakeFiles/CMakeError.log".
(0041501)
Kitware Robot   
2016-06-10 14:27   
Resolving issue as `moved`.

This issue tracker is no longer used. Further discussion of this issue may take place in the current CMake Issues page linked in the banner at the top of this page.