Skip to content

Run GCO_UnitTest in windows #7

@lyt91222

Description

@lyt91222

Is it possible to use this library in windows? I got the following error when compiling the library.

`Error using mex
C:\gco\GCoptimization.cpp:18:0: warning: "NOMINMAX" redefined
#define NOMINMAX
^
In file included from C:/MATLAB/SupportPackages/R2015b/MW_MinGW_4_9/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++/x86_64-w64-mingw32/bits/c++config.h:430:0,
from C:/MATLAB/SupportPackages/R2015b/MW_MinGW_4_9/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++/bits/stl_algobase.h:59,
from C:/MATLAB/SupportPackages/R2015b/MW_MinGW_4_9/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++/vector:60,
from C:\gco\GCoptimization.cpp:8:
C:/MATLAB/SupportPackages/R2015b/MW_MinGW_4_9/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++/x86_64-w64-mingw32/bits/os_defines.h:45:0: note: this is the
location of the previous definition
#define NOMINMAX 1
^
C:\gco\GCoptimization.cpp:20:23: warning: 'GCO_CLOCKS_PER_SEC' initialized and declared 'extern'
extern "C" gcoclock_t GCO_CLOCKS_PER_SEC = 0;
^
In file included from C:\gco\GCoptimization.h:108:0,
from C:\gco\GCoptimization.cpp:4:
C:\gco\energy.h: In instantiation of 'int Energy<captype, tcaptype, flowtype>::get_var(Energy<captype, tcaptype, flowtype>::Var) [with captype = double;
tcaptype = double; flowtype = double; Energy<captype, tcaptype, flowtype>::Var = int]':
C:\gco\GCoptimization.cpp:197:20: required from here
C:\gco\energy.h:328:91: error: 'what_segment' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of
instantiation [-fpermissive]
inline int Energy<captype,tcaptype,flowtype>::get_var(Var x) { return (int) what_segment(x); }
^
C:\gco\energy.h:328:91: note: declarations in dependent base 'Graph<double, double, double>' are not found by unqualified lookup
C:\gco\energy.h:328:91: note: use 'this->what_segment' instead
C:\gco\energy.h: In instantiation of 'void Energy<captype, tcaptype, flowtype>::add_term1(Energy<captype, tcaptype, flowtype>::Var, Energy<captype, tcaptype,
flowtype>::Value, Energy<captype, tcaptype, flowtype>::Value) [with captype = double; tcaptype = double; flowtype = double; Energy<captype, tcaptype,
flowtype>::Var = int; Energy<captype, tcaptype, flowtype>::Value = double]':
C:\gco\GCoptimization.cpp:280:22: required from here
C:\gco\energy.h:207:22: error: 'add_tweights' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of
instantiation [-fpermissive]
add_tweights(x, B, A);
^
C:\gco\energy.h:207:22: note: declarations in dependent base 'Graph<double, double, double>' are not found by unqualified lookup
C:\gco\energy.h:207:22: note: use 'this->add_tweights' instead
C:\gco\energy.h: In instantiation of 'void Energy<captype, tcaptype, flowtype>::add_term2(Energy<captype, tcaptype, flowtype>::Var, Energy<captype, tcaptype,
flowtype>::Var, Energy<captype, tcaptype, flowtype>::Value, Energy<captype, tcaptype, flowtype>::Value, Energy<captype, tcaptype, flowtype>::Value,
Energy<captype, tcaptype, flowtype>::Value) [with captype = double; tcaptype = double; flowtype = double; Energy<captype, tcaptype, flowtype>::Var = int;
Energy<captype, tcaptype, flowtype>::Value = double]':
C:\gco\GCoptimization.cpp:304:42: required from here
C:\gco\energy.h:220:22: error: 'add_tweights' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of
instantiation [-fpermissive]
add_tweights(x, D, A);
^
C:\gco\energy.h:220:22: note: declarations in dependent base 'Graph<double, double, double>' are not found by unqualified lookup
C:\gco\energy.h:220:22: note: use 'this->add_tweights' instead
C:\gco\energy.h:235:23: error: 'add_tweights' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of
instantiation [-fpermissive]
add_tweights(x, 0, B); /* first term /
^
C:\gco\energy.h:235:23: note: declarations in dependent base 'Graph<double, double, double>' are not found by unqualified lookup
C:\gco\energy.h:235:23: note: use 'this->add_tweights' instead
C:\gco\energy.h:236:24: error: 'add_tweights' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of
instantiation [-fpermissive]
add_tweights(y, 0, -B); /
second term /
^
C:\gco\energy.h:236:24: note: declarations in dependent base 'Graph<double, double, double>' are not found by unqualified lookup
C:\gco\energy.h:236:24: note: use 'this->add_tweights' instead
C:\gco\energy.h:237:24: error: 'add_edge' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of
instantiation [-fpermissive]
add_edge(x, y, 0, B+C); /
third term /
^
C:\gco\energy.h:237:24: note: declarations in dependent base 'Graph<double, double, double>' are not found by unqualified lookup
C:\gco\energy.h:237:24: note: use 'this->add_edge' instead
C:\gco\energy.h:245:24: error: 'add_tweights' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of
instantiation [-fpermissive]
add_tweights(x, 0, -C); /
first term /
^
C:\gco\energy.h:245:24: note: declarations in dependent base 'Graph<double, double, double>' are not found by unqualified lookup
C:\gco\energy.h:245:24: note: use 'this->add_tweights' instead
C:\gco\energy.h:246:23: error: 'add_tweights' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of
instantiation [-fpermissive]
add_tweights(y, 0, C); /
second term /
^
C:\gco\energy.h:246:23: note: declarations in dependent base 'Graph<double, double, double>' are not found by unqualified lookup
C:\gco\energy.h:246:23: note: use 'this->add_tweights' instead
C:\gco\energy.h:247:24: error: 'add_edge' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of
instantiation [-fpermissive]
add_edge(x, y, B+C, 0); /
third term /
^
C:\gco\energy.h:247:24: note: declarations in dependent base 'Graph<double, double, double>' are not found by unqualified lookup
C:\gco\energy.h:247:24: note: use 'this->add_edge' instead
C:\gco\energy.h:251:22: error: 'add_edge' was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of
instantiation [-fpermissive]
add_edge(x, y, B, C);
^
C:\gco\energy.h:251:22: note: declarations in dependent base 'Graph<double, double, double>' are not found by unqualified lookup
C:\gco\energy.h:251:22: note: use 'this->add_edge' instead
In file included from C:\gco\GCoptimization.h:109:0,
from C:\gco\GCoptimization.cpp:4:
C:\gco\graph.cpp: In instantiation of 'Graph<captype, tcaptype, flowtype>::Graph(int, int, void (
)(char_)) [with captype = double; tcaptype = double;
flowtype = double]':
C:\gco\energy.h:187:189: required from 'Energy<captype, tcaptype, flowtype>::Energy(int, int, void ()(char)) [with captype = double; tcaptype = double;
flowtype = double]'
C:\gco\GCoptimization.cpp:1230:33: required from here
C:\gco\graph.cpp:21:83: warning: deprecated conversion from string constant to 'char_' [-Wwrite-strings]
if (!nodes || !arcs) { if (error_function) (error_function)("Not enough memory!"); exit(1); }
^
In file included from C:\gco\GCoptimization.h:110:0,
from C:\gco\GCoptimization.cpp:4:
C:\gco\maxflow.cpp: In instantiation of 'flowtype Graph<captype, tcaptype, flowtype>::maxflow(bool, Block
) [with captype = double; tcaptype = double;
flowtype = double]':
C:\gco\energy.h:325:33: required from 'Energy<captype, tcaptype, flowtype>::TotalValue Energy<captype, tcaptype, flowtype>::minimize() [with captype =
double; tcaptype = double; flowtype = double; Energy<captype, tcaptype, flowtype>::TotalValue = double]'
C:\gco\GCoptimization.cpp:1237:37: required from here
C:\gco\maxflow.cpp:484:145: warning: deprecated conversion from string constant to 'char_' [-Wwrite-strings]
if (maxflow_iteration == 0 && reuse_trees) { if (error_function) (error_function)("reuse_trees cannot be used in the first call to maxflow()!"); exit(1); }
^
C:\gco\maxflow.cpp:485:126: warning: deprecated conversion from string constant to 'char
' [-Wwrite-strings]
if (changed_list && !reuse_trees) { if (error_function) (error_function)("changed_list cannot be used without reuse_trees!"); exit(1); }
^
In file included from C:\gco\GCoptimization.h:109:0,
from C:\gco\GCoptimization.cpp:4:
C:\gco\graph.cpp: In instantiation of 'void Graph<captype, tcaptype, flowtype>::reallocate_nodes(int) [with captype = double; tcaptype = double; flowtype =
double]':
C:\gco\graph.h:364:54: required from 'Graph<captype, tcaptype, flowtype>::node_id Graph<captype, tcaptype, flowtype>::add_node(int) [with captype = double;
tcaptype = double; flowtype = double; Graph<captype, tcaptype, flowtype>::node_id = int]'
C:\gco\energy.h:198:30: required from 'Energy<captype, tcaptype, flowtype>::Var Energy<captype, tcaptype, flowtype>::add_variable(int) [with captype =
double; tcaptype = double; flowtype = double; Energy<captype, tcaptype, flowtype>::Var = int]'
C:\gco\GCoptimization.cpp:1140:31: required from here
C:\gco\graph.cpp:70:74: warning: deprecated conversion from string constant to 'char
' [-Wwrite-strings]
if (!nodes) { if (error_function) (error_function)("Not enough memory!"); exit(1); }
^
In file included from C:\gco\graph.h:43:0,
from C:\gco\energy.h:77,
from C:\gco\GCoptimization.h:108,
from C:\gco\GCoptimization.cpp:4:
C:\gco\block.h: In instantiation of 'Type* Block::New(int) [with Type = int]':
C:\gco\maxflow.cpp:110:36: required from 'void Graph<captype, tcaptype, flowtype>::add_to_changed_list(Graph<captype, tcaptype, flowtype>::node
) [with
captype = double; tcaptype = double; flowtype = double]'
C:\gco\maxflow.cpp:520:27: required from 'flowtype Graph<captype, tcaptype, flowtype>::maxflow(bool, Block) [with captype = double; tcaptype = double;
flowtype = double]'
C:\gco\energy.h:325:33: required from 'Energy<captype, tcaptype, flowtype>::TotalValue Energy<captype, tcaptype, flowtype>::minimize() [with captype =
double; tcaptype = double; flowtype = double; Energy<captype, tcaptype, flowtype>::TotalValue = double]'
C:\gco\GCoptimization.cpp:1237:37: required from here
C:\gco\block.h:124:76: warning: deprecated conversion from string constant to 'char
' [-Wwrite-strings]
if (!next) { if (error_function) (error_function)("Not enough memory!"); exit(1); }
^
C:\gco\block.h: In instantiation of 'Type* DBlock::New() [with Type = Graph<double, double, double>::nodeptr]':
C:\gco\maxflow.cpp:95:5: required from 'void Graph<captype, tcaptype, flowtype>::set_orphan_rear(Graph<captype, tcaptype, flowtype>::node
) [with captype =
double; tcaptype = double; flowtype = double]'
C:\gco\maxflow.cpp:183:36: required from 'void Graph<captype, tcaptype, flowtype>::maxflow_reuse_trees_init() [with captype = double; tcaptype = double;
flowtype = double]'
C:\gco\maxflow.cpp:487:44: required from 'flowtype Graph<captype, tcaptype, flowtype>::maxflow(bool, Block) [with captype = double; tcaptype = double;
flowtype = double]'
C:\gco\energy.h:325:33: required from 'Energy<captype, tcaptype, flowtype>::TotalValue Energy<captype, tcaptype, flowtype>::minimize() [with captype =
double; tcaptype = double; flowtype = double; Energy<captype, tcaptype, flowtype>::TotalValue = double]'
C:\gco\GCoptimization.cpp:1237:37: required from here
C:\gco\block.h:223:76: warning: deprecated conversion from string constant to 'char
' [-Wwrite-strings]
if (!first) { if (error_function) (_error_function)("Not enough memory!"); exit(1); }
^

Error in GCO_BuildLib (line 68)
eval(mexcmd); % compile and link in one step

Error in GCO_UnitTest (line 48)
GCO_BuildLib; disp('BuildLib PASSED');
`

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions