title: "Recipe for target failed," but no reason is given
body: <p>I'm trying to figure out where to begin looking to figure out why this simple code won't compile. It was written in CLion, and compiles fine there, but breaks down when I try to do so on another machine outside of the IDE.</p>
  <p>I've checked <code>CMakeOutput</code> but don't see anything helpful. Any ideas where I can look?</p>
  <p>I get this output:</p>
  <pre><code>[GIS-TK_Jenkinsfile] $ C:\Users\Ross\tools\hudson.plugins.cmake.CmakeTool\3.18.1\bin\cmake -G &quot;CodeBlocks - MinGW Makefiles&quot; -D CMAKE_BUILD_TYPE=Release C:\Users\Ross\workspace\GIS-TK_Jenkinsfile
  CMake flags: -Wa,-mbig-obj
  -- Configuring done
  -- Generating done
  -- Build files have been written to: C:/Users/Ross/workspace/GIS-TK_Jenkinsfile
  [GIS-TK_Jenkinsfile] $ C:\Users\Ross\tools\hudson.plugins.cmake.CmakeTool\3.18.1\bin\cmake --build C:\Users\Ross\workspace\GIS-TK_Jenkinsfile
  Scanning dependencies of target GIS_Toolkit
  [ 25%] Building CXX object CMakeFiles/GIS_Toolkit.dir/src/spatial_functions.cpp.obj
  CMakeFiles\GIS_Toolkit.dir\build.make:81: recipe for target 'CMakeFiles/GIS_Toolkit.dir/src/spatial_functions.cpp.obj' failed
  mingw32-make.exe[2]: *** [CMakeFiles/GIS_Toolkit.dir/src/spatial_functions.cpp.obj] Error 1
  CMakeFiles\Makefile2:93: recipe for target 'CMakeFiles/GIS_Toolkit.dir/all' failed
  mingw32-make.exe[1]: *** [CMakeFiles/GIS_Toolkit.dir/all] Error 2
  Makefile:101: recipe for target 'all' failed
  mingw32-make.exe: *** [all] Error 2
  </code></pre>
  <p>The file that seems to cause the issue contains this:</p>
  <pre><code>#include &quot;../include/spatial_functions.h&quot;
  #include &lt;string&gt;
  #include &lt;cmath&gt;
  #include &lt;vector&gt;
  #include &lt;iostream&gt;
  
  std::vector&lt;float&gt; spatial_functions::get_origin(float north_y, float south_y, float east_x, float west_x) {
      std::vector&lt;float&gt; centroid;
      float x_result;
      float y_result;
  
      x_result = (east_x + west_x) / 2;
      y_result = (north_y + south_y) / 2;
  
      centroid.push_back(x_result);
      centroid.push_back(y_result);
  
      return centroid;
  }
  
  std::vector&lt;float&gt; spatial_functions::dd_to_dms(const std::string coord)
  {
      std::string degrees_string = &quot;0.0&quot;;
      int degrees = 0;
      std::string decimal_string = &quot;0.0&quot;;
      float decimal;
      float minutes;
      float seconds;
  
      std::vector&lt;float&gt; results;
  
      std::vector&lt;std::string&gt; strings = spatial_functions::split_string(coord, '.');
  
      degrees_string = strings.at(0);
      decimal_string = strings.at(1);
      decimal_string.insert(0, 1, '.');
  
      degrees = std::stoi(degrees_string);
      minutes = std::stof(decimal_string);
      decimal = minutes;
  
      if( degrees &gt;= -180 &amp;&amp; degrees &lt;= 180 ) {
          if ( degrees == 180 &amp;&amp; minutes &gt; 0.0 ){
              throw std::invalid_argument( &quot;Degrees over 180.&quot; );
          } else {
              // Split float at decimal point so that a.bb becomes integer a and float .bb
              std::istringstream parser(coord);
  
              //minutes = int(60 * minutes)
              //seconds = abs(round(((decimal - (minutes / 60)) * 3600), 3))
  
              minutes = floor(minutes * 60);
              seconds = std::abs(( decimal - ( minutes / 60 ) ) * 3600 );
              seconds = round ( seconds * 1000.0 ) / 1000.0;
              results.push_back(degrees);
              results.push_back(minutes);
              results.push_back(seconds);
              }
          }
  
      return results;
  }
  
  std::vector&lt;std::string&gt; spatial_functions::split_string(std::string input_string, char split_char) {
      std::stringstream ss_input_string;
      ss_input_string &lt;&lt; (input_string);
      std::vector&lt;std::string&gt; string_list;
      std::string segment;
  
      while ( std::getline(ss_input_string, segment, split_char) )
          string_list.push_back(segment);
  
      return string_list;
  }
  </code></pre>
  <p>My CMakeLists.txt contains:</p>
  <pre><code>cmake_minimum_required(VERSION 3.17)
  set(CMAKE_CXX_FLAGS &quot;-Wa,-mbig-obj&quot; CACHE STRING &quot;Default XX options&quot; FORCE)
  project(GIS_Toolkit)
  set(CMAKE_CXX_STANDARD 20)
  set(CMAKE_INCLUDE_CURRENT_DIR ON)
  set(CMAKE_PREFIX_PATH &quot;C:\\Qt\\5.15.0\\mingw81_64&quot;)
  set(CMAKE_C_COMPILER &quot;C:\\Qt\\Tools\\mingw810_64\\bin\\gcc.exe&quot;)
  set(CMAKE_CXX_COMPILER &quot;C:\\Qt\\Tools\\mingw810_64\\bin\\g++.exe&quot;)
  
  message(&quot;CMake flags: &quot; ${CMAKE_CXX_FLAGS})
  
  find_package(Qt5 COMPONENTS Core Widgets REQUIRED)
  
  add_executable(GIS_Toolkit src/spatial_functions.cpp
          src/spatial_functions.h
          include/catch.h
          include/gdal_priv.h
          include/ogrsf_frmts.h
          src/MainWindow.cpp
          src/DisplayShapefile.cpp
          src/DisplayShapefile.h
          )
  
  # find qt5 library
  set(Qt5_DIR &quot;C:\\Qt\\5.15.0\\mingw81_64\\lib\\cmake\\Qt5&quot;)
  target_link_libraries(GIS_Toolkit
          Qt5::Core Qt5::Widgets)
  </code></pre>