"Recipe for target failed," but no reason is given

Viewed 2500

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.

I've checked CMakeOutput but don't see anything helpful. Any ideas where I can look?

I get this output:

[GIS-TK_Jenkinsfile] $ C:\Users\Ross\tools\hudson.plugins.cmake.CmakeTool\3.18.1\bin\cmake -G "CodeBlocks - MinGW Makefiles" -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

The file that seems to cause the issue contains this:

#include "../include/spatial_functions.h"
#include <string>
#include <cmath>
#include <vector>
#include <iostream>

std::vector<float> spatial_functions::get_origin(float north_y, float south_y, float east_x, float west_x) {
    std::vector<float> 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<float> spatial_functions::dd_to_dms(const std::string coord)
{
    std::string degrees_string = "0.0";
    int degrees = 0;
    std::string decimal_string = "0.0";
    float decimal;
    float minutes;
    float seconds;

    std::vector<float> results;

    std::vector<std::string> 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 >= -180 && degrees <= 180 ) {
        if ( degrees == 180 && minutes > 0.0 ){
            throw std::invalid_argument( "Degrees over 180." );
        } 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<std::string> spatial_functions::split_string(std::string input_string, char split_char) {
    std::stringstream ss_input_string;
    ss_input_string << (input_string);
    std::vector<std::string> string_list;
    std::string segment;

    while ( std::getline(ss_input_string, segment, split_char) )
        string_list.push_back(segment);

    return string_list;
}

My CMakeLists.txt contains:

cmake_minimum_required(VERSION 3.17)
set(CMAKE_CXX_FLAGS "-Wa,-mbig-obj" CACHE STRING "Default XX options" FORCE)
project(GIS_Toolkit)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_PREFIX_PATH "C:\\Qt\\5.15.0\\mingw81_64")
set(CMAKE_C_COMPILER "C:\\Qt\\Tools\\mingw810_64\\bin\\gcc.exe")
set(CMAKE_CXX_COMPILER "C:\\Qt\\Tools\\mingw810_64\\bin\\g++.exe")

message("CMake flags: " ${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 "C:\\Qt\\5.15.0\\mingw81_64\\lib\\cmake\\Qt5")
target_link_libraries(GIS_Toolkit
        Qt5::Core Qt5::Widgets)
0 Answers
Related