catkin_make fails for windows
After completing the ROS for Windows installation, where everything proceeded smoothly, I was able to use the generic ros commands succedfully (roscore, etc..). However, catkin_make failed due to the spaces in the windows path definitions (eg:Program Files). This was executed in the ROS Command Window as described in the installation. I also tried to execute catkin_make_isolated, which also gave the same error.
==> Processing catkin package: 'roscpp_tutorials'
==> Creating build directory: 'build_isolated\roscpp_tutorials'
==> cmake C:\opt\ros\melodic\catkin_ws\src\. -DCATKIN_DEVEL_PREFIX=C:\opt\ros\melodic\catkin_ws\devel_isolated\roscpp_tutorials -DCMAKE_INSTALL_PREFIX=C:\opt\ros\melodic\catkin_ws\install_isolated -DCMAKE_BUILD_TYPE=RelWithDebInfo -G NMake Makefiles in 'C:\opt\ros\melodic\catkin_ws\build_isolated\roscpp_tutorials'
-- The C compiler identification is MSVC 19.23.28105.4
-- The CXX compiler identification is MSVC 19.23.28105.4
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.23.28105/bin/Hostx64/x64/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.23.28105/bin/Hostx64/x64/cl.exe -- broken
CMake Error at C:/opt/python27amd64/Lib/site-packages/cmake/data/share/cmake-3.15/Modules/CMakeTestCCompiler.cmake:60 (message):
The C compiler
"C:/Program Files (x86)/Microsoft Visual Studio/2019/Professional/VC/Tools/MSVC/14.23.28105/bin/Hostx64/x64/cl.exe"
is not able to compile a simple test program.
It fails with the following output:
Change Dir: C:/opt/ros/melodic/catkin_ws/build_isolated/roscpp_tutorials/CMakeFiles/CMakeTmp
Run Build Command(s):nmake /nologo cmTC_99ee3\fast && C:\Program Files (x86)\GnuWin32\bin\make.exe -f CMakeFiles\cmTC_99ee3.dir\build.make /nologo -L CMakeFiles\cmTC_99ee3.dir\build
'C:\Program' is not recognized as an internal or external command,
operable program or batch file.
NMAKE : fatal error U1077: 'C:\Program' : return code '0x1'
Stop.
Could someone please help me in solving this issue?
It looks like something isn't quoted correctly (note how
C:\Program
is the first part ofC:\Program Files (x86)\..
).This seems to be happening in CMake though, so not sure how
ms-iot/ROSOnWindows
is involved.In any case: ms-iot/ROSOnWindows#134 seems like a similar issue.
You are correct about it being a CMake issue. However, its difficult to find the source where it is taking place, where the problem can somehow be avoided by using quotes or making the path to be shorthand. ms-iot/ROSOnWindows#134 solution isnt feasible for my case anyhow.
I did not mean to imply it was. It's not a solution, it seems to be a similar issue.