dincarnato / draco

Deconvolution of RNA Alternative COnformations
GNU General Public License v3.0
10 stars 4 forks source link

Compilation help #5

Closed wonaya closed 1 year ago

wonaya commented 1 year ago

Hi,

I am trying to build draco on dockerfile to see if I can run it within a container. I keep getting error

  By not providing "Finddlib.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "dlib", but
  CMake did not find one.

  Could not find a package configuration file provided by "dlib" with any of
  the following names:

    dlibConfig.cmake
    dlib-config.cmake

  Add the installation prefix of "dlib" to CMAKE_PREFIX_PATH or set
  "dlib_DIR" to a directory containing one of the above files.  If "dlib"
  provides a separate development package or SDK, be sure it has been
  installed.

Dlib was installed using

pip3 install dlib

My compile code was

cmake .. -DCMAKE_BUILD_TYPE=Release -DLINK_TIME_OPTIMIZATIONS=ON -DNATIVE_BUILD=ON -DARMA_NO_WRAPPER=ON ; make -j 1' returned a non-zero code: 2

Thank you.

dincarnato commented 1 year ago

Hi wonaya,

by using pip3 you have installed dlib for python, but this has nothing to do with draco as draco is written in C++. I suggest you to install dlib from source.

All the best, Danny

wonaya commented 1 year ago

Hi Danny,

Tried installing dlib from source following http://dlib.net/compile.html instructions. Set $dlib_DIR to where dlibConfig.cmake file sits, but I am still getting error

-- Could NOT find TBB (missing: TBB_DIR)
CMake Error at /home/ec2-user/dlib/build/dlib/config/dlibConfig.cmake:21 (include):
  include could not find load file:

    /home/ec2-user/dlib/build/dlib/config/dlib.cmake
Call Stack (most recent call first):
  CMakeLists.txt:33 (FIND_PACKAGE)

CMake Error at /home/ec2-user/dlib/build/dlib/config/dlibConfig.cmake:23 (get_target_property):
  get_target_property() called with non-existent target "dlib::dlib".
Call Stack (most recent call first):
  CMakeLists.txt:33 (FIND_PACKAGE)

CMake Warning at CMakeLists.txt:33 (FIND_PACKAGE):
  Found package configuration file:

    /home/ec2-user/dlib/build/dlib/config/dlibConfig.cmake

  but it set dlib_FOUND to FALSE so package "dlib" is considered to be NOT
  FOUND.

Thanks.

dincarnato commented 1 year ago

Can I please see both the command you are executing and the full output? It looks like you are pointing to the cmake file of the dlib sources, which does not make any sense.

wonaya commented 1 year ago

Okay, I was able to fix the dlib issue but now, I have another compiling error when I run make

make[2]: *** [src/CMakeFiles/args_generate.dir/args_generate.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/args_generate.dir/all] Error 2
make: *** [all] Error 2make[2]: 

Any feedback would be appreciated.

dincarnato commented 1 year ago

Wonaya, I still did not see the full cmake output. I'd like to see it in full to see all the detected versions of the software. tnx.

wonaya commented 1 year ago
(base) cmake .. -DCMAKE_BUILD_TYPE=Release -DLINK_TIME_OPTIMIZATIONS=ON -DNATIVE_BUILD=ON -DARMA_NO_WRAPPER=ON -DBOOST_ROOT=~/boost_1_80_0 -DCMAKE_PREFIX_PATH=/opt/OpenBLAS/
-- Openblas library found: /opt/OpenBLAS/lib/libopenblas.so
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ec2-user/draco/build
dincarnato commented 1 year ago

Wonaya, you should first clean the build directory and then run cmake. This output is incomplete because the cmake had been run before.

wonaya commented 1 year ago

Hi dincarnato, I tried make clean and rm -Rf build. The cmake command worked fine, which was

cmake .. -DCMAKE_BUILD_TYPE=Release -DLINK_TIME_OPTIMIZATIONS=ON -DNATIVE_BUILD=ON -DARMA_NO_WRAPPER=ON -DBOOST_ROOT=~/boost_1_80_0 -DCMAKE_PREFIX_PATH=/opt/OpenBLAS/

but the make did not.

(base) make -j2
[  0%] Building CXX object src/CMakeFiles/args_generate.dir/args_generate.cpp.o
In file included from /home/ec2-user/draco/src/cte/string.hpp:8:0,
                 from /home/ec2-user/draco/src/args_impl.hpp:6,
                 from /home/ec2-user/draco/src/args_def.hpp:3,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/cte/floating_point.hpp:293:1: error: non-constant condition for static assertion
 static_assert(cte::Float(std::numeric_limits<float>::quiet_NaN()).is_nan());
 ^~~~~~~~~~~~~
/home/ec2-user/draco/src/cte/floating_point.hpp:293:74:   in constexpr expansion of ‘cte::FloatingPoint<float>(std::numeric_limits<float>::quiet_NaN())’
/home/ec2-user/draco/src/cte/floating_point.hpp:60:70:   in constexpr expansion of ‘cte::FloatingPoint<float>::get_representation(value)’
/home/ec2-user/draco/src/cte/floating_point.hpp:233:6:   in constexpr expansion of ‘<lambda closure object>cte::FloatingPoint<T>::get_representation(T) [with T = float; cte::FloatingPoint<T>::repr_type = unsigned int]::<lambda()>{x}.cte::FloatingPoint<T>::get_representation(T) [with T = float; cte::FloatingPoint<T>::repr_type = unsigned int]::<lambda()>()’
/home/ec2-user/draco/src/cte/floating_point.hpp:196:20: error: ‘(+QNaNf > 3.40282347e+38f)’ is not a constant expression
       } else if (x == std::numeric_limits<T>::infinity()) {
                  ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ec2-user/draco/src/cte/floating_point.hpp:296:1: error: non-constant condition for static assertion
 static_assert(cte::Double(std::numeric_limits<double>::quiet_NaN()).is_nan());
 ^~~~~~~~~~~~~
/home/ec2-user/draco/src/cte/floating_point.hpp:296:76:   in constexpr expansion of ‘cte::FloatingPoint<double>(std::numeric_limits<double>::quiet_NaN())’
/home/ec2-user/draco/src/cte/floating_point.hpp:60:70:   in constexpr expansion of ‘cte::FloatingPoint<double>::get_representation(value)’
/home/ec2-user/draco/src/cte/floating_point.hpp:233:6:   in constexpr expansion of ‘<lambda closure object>cte::FloatingPoint<T>::get_representation(T) [with T = double; cte::FloatingPoint<T>::repr_type = long unsigned int]::<lambda()>{x}.cte::FloatingPoint<T>::get_representation(T) [with T = double; cte::FloatingPoint<T>::repr_type = long unsigned int]::<lambda()>()’
/home/ec2-user/draco/src/cte/floating_point.hpp:196:20: error: ‘(+QNaN > 1.7976931348623157e+308)’ is not a constant expression
       } else if (x == std::numeric_limits<T>::infinity()) {
                  ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/ec2-user/draco/src/args_impl.hpp:6:0,
                 from /home/ec2-user/draco/src/args_def.hpp:3,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/cte/string.hpp:481:1: error: static assertion failed
 static_assert(std::is_same_v<decltype(cte::into_string<0>()), cte::string<2>>);
 ^~~~~~~~~~~~~
In file included from /home/ec2-user/draco/src/args_impl.hpp:7:0,
                 from /home/ec2-user/draco/src/args_def.hpp:3,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/default_value.hpp:165:34: error: expected unqualified-id before ‘[’ token
   constexpr DefaultValueArgValue([[maybe_unused]] char const (&s)[N]) noexcept {
                                  ^
/home/ec2-user/draco/src/default_value.hpp:165:34: error: expected ‘)’ before ‘[’ token
/home/ec2-user/draco/src/default_value.hpp:184:63: error: no matching function for call to ‘detail::DefaultValueArgValue<const char (&)[23]>::DefaultValueArgValue(const char [23])’
   ::DefaultValue<::detail::DefaultValueArgValue<decltype(x)>(x).value(),       \
                                                               ^
/home/ec2-user/draco/src/args_impl.hpp:240:40: note: in expansion of macro ‘MAKE_DEFAULT_VALUE’
 #define DEFAULT_VALUE(x) default_value(MAKE_DEFAULT_VALUE(x))
                                        ^~~~~~~~~~~~~~~~~~
/home/ec2-user/draco/src/args_def.hpp:18:14: note: in expansion of macro ‘DEFAULT_VALUE’
             .DEFAULT_VALUE("draco_deconvolved.json"),
              ^~~~~~~~~~~~~
/home/ec2-user/draco/src/default_value.hpp:161:33: note: candidate: constexpr detail::DefaultValueArgValue<const char (&)[23]>::DefaultValueArgValue()
 template <std::size_t N> struct DefaultValueArgValue<char const (&)[N], void> {
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ec2-user/draco/src/default_value.hpp:161:33: note:   candidate expects 0 arguments, 1 provided
/home/ec2-user/draco/src/default_value.hpp:161:33: note: candidate: constexpr detail::DefaultValueArgValue<const char (&)[23]>::DefaultValueArgValue(const detail::DefaultValueArgValue<const char (&)[23]>&)
/home/ec2-user/draco/src/default_value.hpp:161:33: note:   no known conversion for argument 1 from ‘const char [23]’ to ‘const detail::DefaultValueArgValue<const char (&)[23]>&’
/home/ec2-user/draco/src/default_value.hpp:161:33: note: candidate: constexpr detail::DefaultValueArgValue<const char (&)[23]>::DefaultValueArgValue(detail::DefaultValueArgValue<const char (&)[23]>&&)
/home/ec2-user/draco/src/default_value.hpp:161:33: note:   no known conversion for argument 1 from ‘const char [23]’ to ‘detail::DefaultValueArgValue<const char (&)[23]>&&’
/home/ec2-user/draco/src/default_value.hpp:185:67: error: template argument 1 is invalid
                  ::detail::DefaultValueArgValue<decltype(x)>::type>(x)
                                                                   ^
/home/ec2-user/draco/src/args_impl.hpp:240:40: note: in expansion of macro ‘MAKE_DEFAULT_VALUE’
 #define DEFAULT_VALUE(x) default_value(MAKE_DEFAULT_VALUE(x))
                                        ^~~~~~~~~~~~~~~~~~
/home/ec2-user/draco/src/args_def.hpp:18:14: note: in expansion of macro ‘DEFAULT_VALUE’
             .DEFAULT_VALUE("draco_deconvolved.json"),
              ^~~~~~~~~~~~~
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:0:
/home/ec2-user/draco/src/args_def.hpp:39:34: error: class template argument deduction failed:
             .DEFAULT_VALUE(false)),
                                  ^
/home/ec2-user/draco/src/args_def.hpp:39:34: error: no matching function for call to ‘Group()’
In file included from /home/ec2-user/draco/src/args_def.hpp:3:0,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:190:1: note: candidate: template<long unsigned int DescriptionSize, class ... Args> args::Group(cte::string<N>, Args&& ...)-> args::Group<DescriptionSize, std::decay_t<Args>...>
 Group(cte::string<DescriptionSize>, Args &&...)
 ^~~~~
/home/ec2-user/draco/src/args_impl.hpp:190:1: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:0:
/home/ec2-user/draco/src/args_def.hpp:39:34: note:   candidate expects at least 1 argument, 0 provided
             .DEFAULT_VALUE(false)),
                                  ^
In file included from /home/ec2-user/draco/src/args_def.hpp:3:0,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:194:1: note: candidate: template<long unsigned int StringSize, class ... Args> args::Group(const char (&)[StringSize], Args&& ...)-> args::Group<(StringSize - 1), std::decay_t<Args>...>
 Group(char const (&)[StringSize], Args &&...)
 ^~~~~
/home/ec2-user/draco/src/args_impl.hpp:194:1: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:0:
/home/ec2-user/draco/src/args_def.hpp:39:34: note:   candidate expects at least 1 argument, 0 provided
             .DEFAULT_VALUE(false)),
                                  ^
In file included from /home/ec2-user/draco/src/args_def.hpp:3:0,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:180:13: note: candidate: template<long unsigned int DescriptionSize, class ... Args, class ... _Args> Group(const char (&)[(DescriptionSize + 1)], _Args&& ...)-> args::Group<DescriptionSize, Args>
   constexpr Group(char const (&description)[DescriptionSize + 1],
             ^~~~~
/home/ec2-user/draco/src/args_impl.hpp:180:13: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:0:
/home/ec2-user/draco/src/args_def.hpp:39:34: note:   candidate expects at least 1 argument, 0 provided
             .DEFAULT_VALUE(false)),
                                  ^
In file included from /home/ec2-user/draco/src/args_def.hpp:3:0,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:174:13: note: candidate: template<long unsigned int DescriptionSize, class ... Args, class ... _Args> Group(cte::string<N>, _Args&& ...)-> args::Group<DescriptionSize, Args>
   constexpr Group(cte::string<DescriptionSize> description,
             ^~~~~
/home/ec2-user/draco/src/args_impl.hpp:174:13: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:0:
/home/ec2-user/draco/src/args_def.hpp:39:34: note:   candidate expects at least 1 argument, 0 provided
             .DEFAULT_VALUE(false)),
                                  ^
/home/ec2-user/draco/src/args_def.hpp:39:34: error: expression list treated as compound expression in functional cast [-fpermissive]
/home/ec2-user/draco/src/args_def.hpp:39:34: warning: left operand of comma operator has no effect [-Wunused-value]
In file included from /home/ec2-user/draco/src/args_impl.hpp:7:0,
                 from /home/ec2-user/draco/src/args_def.hpp:3,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/default_value.hpp:184:63: error: no matching function for call to ‘detail::DefaultValueArgValue<const char (&)[16]>::DefaultValueArgValue(const char [16])’
   ::DefaultValue<::detail::DefaultValueArgValue<decltype(x)>(x).value(),       \
                                                               ^
/home/ec2-user/draco/src/args_impl.hpp:240:40: note: in expansion of macro ‘MAKE_DEFAULT_VALUE’
 #define DEFAULT_VALUE(x) default_value(MAKE_DEFAULT_VALUE(x))
                                        ^~~~~~~~~~~~~~~~~~
/home/ec2-user/draco/src/args_def.hpp:147:14: note: in expansion of macro ‘DEFAULT_VALUE’
             .DEFAULT_VALUE("./eigengap_data")),
              ^~~~~~~~~~~~~
/home/ec2-user/draco/src/default_value.hpp:161:33: note: candidate: constexpr detail::DefaultValueArgValue<const char (&)[16]>::DefaultValueArgValue()
 template <std::size_t N> struct DefaultValueArgValue<char const (&)[N], void> {
                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ec2-user/draco/src/default_value.hpp:161:33: note:   candidate expects 0 arguments, 1 provided
/home/ec2-user/draco/src/default_value.hpp:161:33: note: candidate: constexpr detail::DefaultValueArgValue<const char (&)[16]>::DefaultValueArgValue(const detail::DefaultValueArgValue<const char (&)[16]>&)
/home/ec2-user/draco/src/default_value.hpp:161:33: note:   no known conversion for argument 1 from ‘const char [16]’ to ‘const detail::DefaultValueArgValue<const char (&)[16]>&’
/home/ec2-user/draco/src/default_value.hpp:161:33: note: candidate: constexpr detail::DefaultValueArgValue<const char (&)[16]>::DefaultValueArgValue(detail::DefaultValueArgValue<const char (&)[16]>&&)
/home/ec2-user/draco/src/default_value.hpp:161:33: note:   no known conversion for argument 1 from ‘const char [16]’ to ‘detail::DefaultValueArgValue<const char (&)[16]>&&’
/home/ec2-user/draco/src/default_value.hpp:185:67: error: template argument 1 is invalid
                  ::detail::DefaultValueArgValue<decltype(x)>::type>(x)
                                                                   ^
/home/ec2-user/draco/src/args_impl.hpp:240:40: note: in expansion of macro ‘MAKE_DEFAULT_VALUE’
 #define DEFAULT_VALUE(x) default_value(MAKE_DEFAULT_VALUE(x))
                                        ^~~~~~~~~~~~~~~~~~
/home/ec2-user/draco/src/args_def.hpp:147:14: note: in expansion of macro ‘DEFAULT_VALUE’
             .DEFAULT_VALUE("./eigengap_data")),
              ^~~~~~~~~~~~~
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:0:
/home/ec2-user/draco/src/args_def.hpp:147:46: error: class template argument deduction failed:
             .DEFAULT_VALUE("./eigengap_data")),
                                              ^
/home/ec2-user/draco/src/args_def.hpp:147:46: error: no matching function for call to ‘Group()’
In file included from /home/ec2-user/draco/src/args_def.hpp:3:0,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:190:1: note: candidate: template<long unsigned int DescriptionSize, class ... Args> args::Group(cte::string<N>, Args&& ...)-> args::Group<DescriptionSize, std::decay_t<Args>...>
 Group(cte::string<DescriptionSize>, Args &&...)
 ^~~~~
/home/ec2-user/draco/src/args_impl.hpp:190:1: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:0:
/home/ec2-user/draco/src/args_def.hpp:147:46: note:   candidate expects at least 1 argument, 0 provided
             .DEFAULT_VALUE("./eigengap_data")),
                                              ^
In file included from /home/ec2-user/draco/src/args_def.hpp:3:0,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:194:1: note: candidate: template<long unsigned int StringSize, class ... Args> args::Group(const char (&)[StringSize], Args&& ...)-> args::Group<(StringSize - 1), std::decay_t<Args>...>
 Group(char const (&)[StringSize], Args &&...)
 ^~~~~
/home/ec2-user/draco/src/args_impl.hpp:194:1: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:0:
/home/ec2-user/draco/src/args_def.hpp:147:46: note:   candidate expects at least 1 argument, 0 provided
             .DEFAULT_VALUE("./eigengap_data")),
                                              ^
In file included from /home/ec2-user/draco/src/args_def.hpp:3:0,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:180:13: note: candidate: template<long unsigned int DescriptionSize, class ... Args, class ... _Args> Group(const char (&)[(DescriptionSize + 1)], _Args&& ...)-> args::Group<DescriptionSize, Args>
   constexpr Group(char const (&description)[DescriptionSize + 1],
             ^~~~~
/home/ec2-user/draco/src/args_impl.hpp:180:13: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:0:
/home/ec2-user/draco/src/args_def.hpp:147:46: note:   candidate expects at least 1 argument, 0 provided
             .DEFAULT_VALUE("./eigengap_data")),
                                              ^
In file included from /home/ec2-user/draco/src/args_def.hpp:3:0,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:174:13: note: candidate: template<long unsigned int DescriptionSize, class ... Args, class ... _Args> Group(cte::string<N>, _Args&& ...)-> args::Group<DescriptionSize, Args>
   constexpr Group(cte::string<DescriptionSize> description,
             ^~~~~
/home/ec2-user/draco/src/args_impl.hpp:174:13: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:0:
/home/ec2-user/draco/src/args_def.hpp:147:46: note:   candidate expects at least 1 argument, 0 provided
             .DEFAULT_VALUE("./eigengap_data")),
                                              ^
/home/ec2-user/draco/src/args_def.hpp:147:46: error: expression list treated as compound expression in functional cast [-fpermissive]
/home/ec2-user/draco/src/args_def.hpp:147:46: warning: left operand of comma operator has no effect [-Wunused-value]
/home/ec2-user/draco/src/args_def.hpp:230:35: error: class template argument deduction failed:
             .DEFAULT_VALUE(false)));
                                   ^
/home/ec2-user/draco/src/args_def.hpp:230:35: error: no matching function for call to ‘Opts()’
In file included from /home/ec2-user/draco/src/args_def.hpp:3:0,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:225:1: note: candidate: template<long unsigned int DescriptionSize, class ... Groups> args::Opts(cte::string<N>, Groups&& ...)-> args::Opts<DescriptionSize, Groups ...>
 Opts(cte::string<DescriptionSize> description, Groups &&...groups)
 ^~~~
/home/ec2-user/draco/src/args_impl.hpp:225:1: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:0:
/home/ec2-user/draco/src/args_def.hpp:230:35: note:   candidate expects at least 1 argument, 0 provided
             .DEFAULT_VALUE(false)));
                                   ^
In file included from /home/ec2-user/draco/src/args_def.hpp:3:0,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:229:1: note: candidate: template<long unsigned int DescriptionSize, class ... Groups> args::Opts(const char (&)[DescriptionSize], Groups&& ...)-> args::Opts<(DescriptionSize - 1), Groups ...>
 Opts(char const (&description)[DescriptionSize], Groups &&...groups)
 ^~~~
/home/ec2-user/draco/src/args_impl.hpp:229:1: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:0:
/home/ec2-user/draco/src/args_def.hpp:230:35: note:   candidate expects at least 1 argument, 0 provided
             .DEFAULT_VALUE(false)));
                                   ^
In file included from /home/ec2-user/draco/src/args_def.hpp:3:0,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:216:13: note: candidate: template<long unsigned int DescriptionSize, class ... Groups, class ... _Groups> Opts(const char (&)[(DescriptionSize + 1)], _Groups&& ...)-> args::Opts<DescriptionSize, Groups>
   constexpr Opts(char const (&description)[DescriptionSize + 1],
             ^~~~
/home/ec2-user/draco/src/args_impl.hpp:216:13: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:0:
/home/ec2-user/draco/src/args_def.hpp:230:35: note:   candidate expects at least 1 argument, 0 provided
             .DEFAULT_VALUE(false)));
                                   ^
In file included from /home/ec2-user/draco/src/args_def.hpp:3:0,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:210:13: note: candidate: template<long unsigned int DescriptionSize, class ... Groups, class ... _Groups> Opts(cte::string<N>, _Groups&& ...)-> args::Opts<DescriptionSize, Groups>
   constexpr Opts(cte::string<DescriptionSize> description,
             ^~~~
/home/ec2-user/draco/src/args_impl.hpp:210:13: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:0:
/home/ec2-user/draco/src/args_def.hpp:230:35: note:   candidate expects at least 1 argument, 0 provided
             .DEFAULT_VALUE(false)));
                                   ^
/home/ec2-user/draco/src/args_def.hpp:230:35: error: expression list treated as compound expression in functional cast [-fpermissive]
/home/ec2-user/draco/src/args_generate.cpp: In function ‘void dump_opts(std::ostream&)’:
/home/ec2-user/draco/src/args_generate.cpp:38:42: error: decltype evaluates to ‘<type error>’, which is not a class or enumeration type
               std::tuple_size_v<typename decltype(args::opts)::groups_type>>());
                                          ^~~~~~~~
/home/ec2-user/draco/src/args_generate.cpp:38:20: error: template argument 1 is invalid
               std::tuple_size_v<typename decltype(args::opts)::groups_type>>());
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ec2-user/draco/src/args_generate.cpp:38:75: error: template argument 1 is invalid
               std::tuple_size_v<typename decltype(args::opts)::groups_type>>());
                                                                           ^~
/home/ec2-user/draco/src/args_generate.cpp: In function ‘void create_setter_function(std::ostream&)’:
/home/ec2-user/draco/src/args_generate.cpp:87:42: error: decltype evaluates to ‘<type error>’, which is not a class or enumeration type
               std::tuple_size_v<typename decltype(args::opts)::groups_type>>());
                                          ^~~~~~~~
/home/ec2-user/draco/src/args_generate.cpp:87:20: error: template argument 1 is invalid
               std::tuple_size_v<typename decltype(args::opts)::groups_type>>());
                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ec2-user/draco/src/args_generate.cpp:87:75: error: template argument 1 is invalid
               std::tuple_size_v<typename decltype(args::opts)::groups_type>>());
                                                                           ^~
make[2]: *** [src/CMakeFiles/args_generate.dir/args_generate.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/args_generate.dir/all] Error 2
make: *** [all] Error 2
dincarnato commented 1 year ago

wonaya, I will ask once again. Can you please paste the FULL output from the cmake, from a clean build. Tnx.

wonaya commented 1 year ago

I didn't post it because it was same as before,

(base) cmake .. -DCMAKE_BUILD_TYPE=Release -DLINK_TIME_OPTIMIZATIONS=ON -DNATIVE_BUILD=ON -DARMA_NO_WRAPPER=ON -DBOOST_ROOT=~/boost_1_80_0 -DCMAKE_PREFIX_PATH=/opt/OpenBLAS/
-- Openblas library found: /opt/OpenBLAS/lib/libopenblas.so
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ec2-user/draco/build

I am building it on regular AWS EC2 instance, not sure what settings I'd need to get past this error.

dincarnato commented 1 year ago

mmm... can you please post the output of gcc --version?

wonaya commented 1 year ago
(base) gcc --version
gcc (GCC) 10.1.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
dincarnato commented 1 year ago

wonaya, there is something weird here. cmake is not showing the full output and this only happens when it has already been configured. Can you git clone a new instance of draco, make the build folder, run the command and show the full output from there? It should show which version of gcc it's using. The error you get is due to an improper gcc version and I believe the cmake is picking a different version of gcc in the system.

wonaya commented 1 year ago

Hi dincarnato,

Here's the full output from the build just now. I've recloned the repo, and reran the cmake.

(base) git clone https://github.com/dincarnato/draco.git
Cloning into 'draco'...
remote: Enumerating objects: 949, done.
remote: Counting objects: 100% (949/949), done.
remote: Compressing objects: 100% (563/563), done.
remote: Total 949 (delta 469), reused 845 (delta 370), pack-reused 0
Receiving objects: 100% (949/949), 2.09 MiB | 8.97 MiB/s, done.
Resolving deltas: 100% (469/469), done.
(base) cd draco/
(base) mkdir build 
(base) cd build/
(base) cmake .. -DCMAKE_BUILD_TYPE=Release -DLINK_TIME_OPTIMIZATIONS=ON -DNATIVE_BUILD=ON -DARMA_NO_WRAPPER=ON -DBOOST_ROOT=~/boost_1_80_0 -DCMAKE_PREFIX_PATH=/opt/OpenBLAS/
-- The C compiler identification is GNU 9.2.0
-- The CXX compiler identification is GNU 9.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/local/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/local/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Boost: /home/ec2-user/boost_1_80_0 (found suitable version "1.80.0", minimum required is "1.66")  
-- Found Armadillo: /usr/include (found version "11.4.2") 
-- Found OpenMP_C: -fopenmp (found version "4.5") 
-- Found OpenMP_CXX: -fopenmp (found version "4.5") 
-- Found OpenMP: TRUE (found version "4.5")  
-- Openblas library found: /opt/OpenBLAS/lib/libopenblas.so
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ec2-user/draco/build
(base) make -j ^C
(base) make
Scanning dependencies of target args_generate
[  0%] Building CXX object src/CMakeFiles/args_generate.dir/args_generate.cpp.o
In file included from /home/ec2-user/draco/src/args_impl.hpp:7,
                 from /home/ec2-user/draco/src/args_def.hpp:3,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/default_value.hpp:165:34: error: expected unqualified-id before ‘[’ token
  165 |   constexpr DefaultValueArgValue([[maybe_unused]] char const (&s)[N]) noexcept {
      |                                  ^
/home/ec2-user/draco/src/default_value.hpp:165:34: error: expected ‘)’ before ‘[’ token
  165 |   constexpr DefaultValueArgValue([[maybe_unused]] char const (&s)[N]) noexcept {
      |                                 ~^
      |                                  )
/home/ec2-user/draco/src/default_value.hpp:184:63: error: no matching function for call to ‘detail::DefaultValueArgValue<const char (&)[23]>::DefaultValueArgValue(const char [23])’
  184 |   ::DefaultValue<::detail::DefaultValueArgValue<decltype(x)>(x).value(),       \
      |                                                               ^
/home/ec2-user/draco/src/args_impl.hpp:240:40: note: in expansion of macro ‘MAKE_DEFAULT_VALUE’
  240 | #define DEFAULT_VALUE(x) default_value(MAKE_DEFAULT_VALUE(x))
      |                                        ^~~~~~~~~~~~~~~~~~
/home/ec2-user/draco/src/args_def.hpp:18:14: note: in expansion of macro ‘DEFAULT_VALUE’
   18 |             .DEFAULT_VALUE("draco_deconvolved.json"),
      |              ^~~~~~~~~~~~~
/home/ec2-user/draco/src/default_value.hpp:161:33: note: candidate: ‘constexpr detail::DefaultValueArgValue<const char (&)[23]>::DefaultValueArgValue()’
  161 | template <std::size_t N> struct DefaultValueArgValue<char const (&)[N], void> {
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ec2-user/draco/src/default_value.hpp:161:33: note:   candidate expects 0 arguments, 1 provided
/home/ec2-user/draco/src/default_value.hpp:161:33: note: candidate: ‘constexpr detail::DefaultValueArgValue<const char (&)[23]>::DefaultValueArgValue(const detail::DefaultValueArgValue<const char (&)[23]>&)’
/home/ec2-user/draco/src/default_value.hpp:161:33: note:   no known conversion for argument 1 from ‘const char [23]’ to ‘const detail::DefaultValueArgValue<const char (&)[23]>&’
/home/ec2-user/draco/src/default_value.hpp:161:33: note: candidate: ‘constexpr detail::DefaultValueArgValue<const char (&)[23]>::DefaultValueArgValue(detail::DefaultValueArgValue<const char (&)[23]>&&)’
/home/ec2-user/draco/src/default_value.hpp:161:33: note:   no known conversion for argument 1 from ‘const char [23]’ to ‘detail::DefaultValueArgValue<const char (&)[23]>&&’
/home/ec2-user/draco/src/default_value.hpp:185:67: error: template argument 1 is invalid
  185 |                  ::detail::DefaultValueArgValue<decltype(x)>::type>(x)
      |                                                                   ^
/home/ec2-user/draco/src/args_impl.hpp:240:40: note: in expansion of macro ‘MAKE_DEFAULT_VALUE’
  240 | #define DEFAULT_VALUE(x) default_value(MAKE_DEFAULT_VALUE(x))
      |                                        ^~~~~~~~~~~~~~~~~~
/home/ec2-user/draco/src/args_def.hpp:18:14: note: in expansion of macro ‘DEFAULT_VALUE’
   18 |             .DEFAULT_VALUE("draco_deconvolved.json"),
      |              ^~~~~~~~~~~~~
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_def.hpp:39:34: error: class template argument deduction failed:
   39 |             .DEFAULT_VALUE(false)),
      |                                  ^
/home/ec2-user/draco/src/args_def.hpp:39:34: error: no matching function for call to ‘Group()’
In file included from /home/ec2-user/draco/src/args_def.hpp:3,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:190:1: note: candidate: ‘template<long unsigned int DescriptionSize, class ... Args> args::Group(cte::string<N>, Args&& ...)-> args::Group<DescriptionSize, std::decay_t<Args>...>’
  190 | Group(cte::string<DescriptionSize>, Args &&...)
      | ^~~~~
/home/ec2-user/draco/src/args_impl.hpp:190:1: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_def.hpp:39:34: note:   candidate expects at least 1 argument, 0 provided
   39 |             .DEFAULT_VALUE(false)),
      |                                  ^
In file included from /home/ec2-user/draco/src/args_def.hpp:3,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:194:1: note: candidate: ‘template<long unsigned int StringSize, class ... Args> args::Group(const char (&)[StringSize], Args&& ...)-> args::Group<(StringSize - 1), std::decay_t<Args>...>’
  194 | Group(char const (&)[StringSize], Args &&...)
      | ^~~~~
/home/ec2-user/draco/src/args_impl.hpp:194:1: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_def.hpp:39:34: note:   candidate expects at least 1 argument, 0 provided
   39 |             .DEFAULT_VALUE(false)),
      |                                  ^
In file included from /home/ec2-user/draco/src/args_def.hpp:3,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:180:13: note: candidate: ‘template<long unsigned int DescriptionSize, class ... Args, class ... _Args> Group(const char (&)[(DescriptionSize + 1)], _Args&& ...)-> args::Group<DescriptionSize, Args>’
  180 |   constexpr Group(char const (&description)[DescriptionSize + 1],
      |             ^~~~~
/home/ec2-user/draco/src/args_impl.hpp:180:13: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_def.hpp:39:34: note:   candidate expects at least 1 argument, 0 provided
   39 |             .DEFAULT_VALUE(false)),
      |                                  ^
In file included from /home/ec2-user/draco/src/args_def.hpp:3,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:174:13: note: candidate: ‘template<long unsigned int DescriptionSize, class ... Args, class ... _Args> Group(cte::string<N>, _Args&& ...)-> args::Group<DescriptionSize, Args>’
  174 |   constexpr Group(cte::string<DescriptionSize> description,
      |             ^~~~~
/home/ec2-user/draco/src/args_impl.hpp:174:13: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_def.hpp:39:34: note:   candidate expects at least 1 argument, 0 provided
   39 |             .DEFAULT_VALUE(false)),
      |                                  ^
/home/ec2-user/draco/src/args_def.hpp:39:34: error: expression list treated as compound expression in functional cast [-fpermissive]
/home/ec2-user/draco/src/args_def.hpp:11:9: warning: left operand of comma operator has no effect [-Wunused-value]
   11 |         "",
      |         ^~
In file included from /home/ec2-user/draco/src/args_impl.hpp:7,
                 from /home/ec2-user/draco/src/args_def.hpp:3,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/default_value.hpp:184:63: error: no matching function for call to ‘detail::DefaultValueArgValue<const char (&)[16]>::DefaultValueArgValue(const char [16])’
  184 |   ::DefaultValue<::detail::DefaultValueArgValue<decltype(x)>(x).value(),       \
      |                                                               ^
/home/ec2-user/draco/src/args_impl.hpp:240:40: note: in expansion of macro ‘MAKE_DEFAULT_VALUE’
  240 | #define DEFAULT_VALUE(x) default_value(MAKE_DEFAULT_VALUE(x))
      |                                        ^~~~~~~~~~~~~~~~~~
/home/ec2-user/draco/src/args_def.hpp:147:14: note: in expansion of macro ‘DEFAULT_VALUE’
  147 |             .DEFAULT_VALUE("./eigengap_data")),
      |              ^~~~~~~~~~~~~
/home/ec2-user/draco/src/default_value.hpp:161:33: note: candidate: ‘constexpr detail::DefaultValueArgValue<const char (&)[16]>::DefaultValueArgValue()’
  161 | template <std::size_t N> struct DefaultValueArgValue<char const (&)[N], void> {
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ec2-user/draco/src/default_value.hpp:161:33: note:   candidate expects 0 arguments, 1 provided
/home/ec2-user/draco/src/default_value.hpp:161:33: note: candidate: ‘constexpr detail::DefaultValueArgValue<const char (&)[16]>::DefaultValueArgValue(const detail::DefaultValueArgValue<const char (&)[16]>&)’
/home/ec2-user/draco/src/default_value.hpp:161:33: note:   no known conversion for argument 1 from ‘const char [16]’ to ‘const detail::DefaultValueArgValue<const char (&)[16]>&’
/home/ec2-user/draco/src/default_value.hpp:161:33: note: candidate: ‘constexpr detail::DefaultValueArgValue<const char (&)[16]>::DefaultValueArgValue(detail::DefaultValueArgValue<const char (&)[16]>&&)’
/home/ec2-user/draco/src/default_value.hpp:161:33: note:   no known conversion for argument 1 from ‘const char [16]’ to ‘detail::DefaultValueArgValue<const char (&)[16]>&&’
/home/ec2-user/draco/src/default_value.hpp:185:67: error: template argument 1 is invalid
  185 |                  ::detail::DefaultValueArgValue<decltype(x)>::type>(x)
      |                                                                   ^
/home/ec2-user/draco/src/args_impl.hpp:240:40: note: in expansion of macro ‘MAKE_DEFAULT_VALUE’
  240 | #define DEFAULT_VALUE(x) default_value(MAKE_DEFAULT_VALUE(x))
      |                                        ^~~~~~~~~~~~~~~~~~
/home/ec2-user/draco/src/args_def.hpp:147:14: note: in expansion of macro ‘DEFAULT_VALUE’
  147 |             .DEFAULT_VALUE("./eigengap_data")),
      |              ^~~~~~~~~~~~~
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_def.hpp:147:46: error: class template argument deduction failed:
  147 |             .DEFAULT_VALUE("./eigengap_data")),
      |                                              ^
/home/ec2-user/draco/src/args_def.hpp:147:46: error: no matching function for call to ‘Group()’
In file included from /home/ec2-user/draco/src/args_def.hpp:3,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:190:1: note: candidate: ‘template<long unsigned int DescriptionSize, class ... Args> args::Group(cte::string<N>, Args&& ...)-> args::Group<DescriptionSize, std::decay_t<Args>...>’
  190 | Group(cte::string<DescriptionSize>, Args &&...)
      | ^~~~~
/home/ec2-user/draco/src/args_impl.hpp:190:1: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_def.hpp:147:46: note:   candidate expects at least 1 argument, 0 provided
  147 |             .DEFAULT_VALUE("./eigengap_data")),
      |                                              ^
In file included from /home/ec2-user/draco/src/args_def.hpp:3,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:194:1: note: candidate: ‘template<long unsigned int StringSize, class ... Args> args::Group(const char (&)[StringSize], Args&& ...)-> args::Group<(StringSize - 1), std::decay_t<Args>...>’
  194 | Group(char const (&)[StringSize], Args &&...)
      | ^~~~~
/home/ec2-user/draco/src/args_impl.hpp:194:1: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_def.hpp:147:46: note:   candidate expects at least 1 argument, 0 provided
  147 |             .DEFAULT_VALUE("./eigengap_data")),
      |                                              ^
In file included from /home/ec2-user/draco/src/args_def.hpp:3,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:180:13: note: candidate: ‘template<long unsigned int DescriptionSize, class ... Args, class ... _Args> Group(const char (&)[(DescriptionSize + 1)], _Args&& ...)-> args::Group<DescriptionSize, Args>’
  180 |   constexpr Group(char const (&description)[DescriptionSize + 1],
      |             ^~~~~
/home/ec2-user/draco/src/args_impl.hpp:180:13: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_def.hpp:147:46: note:   candidate expects at least 1 argument, 0 provided
  147 |             .DEFAULT_VALUE("./eigengap_data")),
      |                                              ^
In file included from /home/ec2-user/draco/src/args_def.hpp:3,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:174:13: note: candidate: ‘template<long unsigned int DescriptionSize, class ... Args, class ... _Args> Group(cte::string<N>, _Args&& ...)-> args::Group<DescriptionSize, Args>’
  174 |   constexpr Group(cte::string<DescriptionSize> description,
      |             ^~~~~
/home/ec2-user/draco/src/args_impl.hpp:174:13: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_def.hpp:147:46: note:   candidate expects at least 1 argument, 0 provided
  147 |             .DEFAULT_VALUE("./eigengap_data")),
      |                                              ^
/home/ec2-user/draco/src/args_def.hpp:147:46: error: expression list treated as compound expression in functional cast [-fpermissive]
/home/ec2-user/draco/src/args_def.hpp:62:9: warning: left operand of comma operator has no effect [-Wunused-value]
   62 |         "Spectral deconvolution",
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
/home/ec2-user/draco/src/args_def.hpp:230:35: error: class template argument deduction failed:
  230 |             .DEFAULT_VALUE(false)));
      |                                   ^
/home/ec2-user/draco/src/args_def.hpp:230:35: error: no matching function for call to ‘Opts()’
In file included from /home/ec2-user/draco/src/args_def.hpp:3,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:225:1: note: candidate: ‘template<long unsigned int DescriptionSize, class ... Groups> args::Opts(cte::string<N>, Groups&& ...)-> args::Opts<DescriptionSize, Groups ...>’
  225 | Opts(cte::string<DescriptionSize> description, Groups &&...groups)
      | ^~~~
/home/ec2-user/draco/src/args_impl.hpp:225:1: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_def.hpp:230:35: note:   candidate expects at least 1 argument, 0 provided
  230 |             .DEFAULT_VALUE(false)));
      |                                   ^
In file included from /home/ec2-user/draco/src/args_def.hpp:3,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:229:1: note: candidate: ‘template<long unsigned int DescriptionSize, class ... Groups> args::Opts(const char (&)[DescriptionSize], Groups&& ...)-> args::Opts<(DescriptionSize - 1), Groups ...>’
  229 | Opts(char const (&description)[DescriptionSize], Groups &&...groups)
      | ^~~~
/home/ec2-user/draco/src/args_impl.hpp:229:1: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_def.hpp:230:35: note:   candidate expects at least 1 argument, 0 provided
  230 |             .DEFAULT_VALUE(false)));
      |                                   ^
In file included from /home/ec2-user/draco/src/args_def.hpp:3,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:216:13: note: candidate: ‘template<long unsigned int DescriptionSize, class ... Groups, class ... _Groups> Opts(const char (&)[(DescriptionSize + 1)], _Groups&& ...)-> args::Opts<DescriptionSize, Groups>’
  216 |   constexpr Opts(char const (&description)[DescriptionSize + 1],
      |             ^~~~
/home/ec2-user/draco/src/args_impl.hpp:216:13: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_def.hpp:230:35: note:   candidate expects at least 1 argument, 0 provided
  230 |             .DEFAULT_VALUE(false)));
      |                                   ^
In file included from /home/ec2-user/draco/src/args_def.hpp:3,
                 from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_impl.hpp:210:13: note: candidate: ‘template<long unsigned int DescriptionSize, class ... Groups, class ... _Groups> Opts(cte::string<N>, _Groups&& ...)-> args::Opts<DescriptionSize, Groups>’
  210 |   constexpr Opts(cte::string<DescriptionSize> description,
      |             ^~~~
/home/ec2-user/draco/src/args_impl.hpp:210:13: note:   template argument deduction/substitution failed:
In file included from /home/ec2-user/draco/src/args_generate.cpp:1:
/home/ec2-user/draco/src/args_def.hpp:230:35: note:   candidate expects at least 1 argument, 0 provided
  230 |             .DEFAULT_VALUE(false)));
      |                                   ^
/home/ec2-user/draco/src/args_def.hpp:230:35: error: expression list treated as compound expression in functional cast [-fpermissive]
/home/ec2-user/draco/src/args_generate.cpp: In function ‘void dump_opts(std::ostream&)’:
/home/ec2-user/draco/src/args_generate.cpp:38:42: error: decltype evaluates to ‘<type error>’, which is not a class or enumeration type
   38 |               std::tuple_size_v<typename decltype(args::opts)::groups_type>>());
      |                                          ^~~~~~~~
/home/ec2-user/draco/src/args_generate.cpp:38:20: error: template argument 1 is invalid
   38 |               std::tuple_size_v<typename decltype(args::opts)::groups_type>>());
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ec2-user/draco/src/args_generate.cpp:38:75: error: template argument 1 is invalid
   38 |               std::tuple_size_v<typename decltype(args::opts)::groups_type>>());
      |                                                                           ^~
/home/ec2-user/draco/src/args_generate.cpp: In function ‘void create_setter_function(std::ostream&)’:
/home/ec2-user/draco/src/args_generate.cpp:87:42: error: decltype evaluates to ‘<type error>’, which is not a class or enumeration type
   87 |               std::tuple_size_v<typename decltype(args::opts)::groups_type>>());
      |                                          ^~~~~~~~
/home/ec2-user/draco/src/args_generate.cpp:87:20: error: template argument 1 is invalid
   87 |               std::tuple_size_v<typename decltype(args::opts)::groups_type>>());
      |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/ec2-user/draco/src/args_generate.cpp:87:75: error: template argument 1 is invalid
   87 |               std::tuple_size_v<typename decltype(args::opts)::groups_type>>());
      |                                                                           ^~
make[2]: *** [src/CMakeFiles/args_generate.dir/args_generate.cpp.o] Error 1
make[1]: *** [src/CMakeFiles/args_generate.dir/all] Error 2
make: *** [all] Error 2
dincarnato commented 1 year ago

So, it looks indeed like it is using a different gcc than the one you showed me before (that was version 10). You should try to rerun cmake specifying the gcc v10 compiler instead and see if that fixes.

wonaya commented 1 year ago

Alright, updated my compiler.

(base) cmake .. -DCMAKE_BUILD_TYPE=Release -DLINK_TIME_OPTIMIZATIONS=ON -DNATIVE_BUILD=ON -DARMA_NO_WRAPPER=ON -DBOOST_ROOT=~/boost_1_80_0 -DCMAKE_PREFIX_PATH=/opt/OpenBLAS/
-- The C compiler identification is GNU 10.1.0
-- The CXX compiler identification is GNU 10.1.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/local/bin/gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/local/bin/g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Boost: /home/ec2-user/boost_1_80_0 (found suitable version "1.80.0", minimum required is "1.66")  
-- Found Armadillo: /usr/include (found version "11.4.2") 
-- Found OpenMP_C: -fopenmp (found version "4.5") 
-- Found OpenMP_CXX: -fopenmp (found version "4.5") 
-- Found OpenMP: TRUE (found version "4.5")  
-- Openblas library found: /opt/OpenBLAS/lib/libopenblas.so
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ec2-user/draco/build
(base) make -j $(nproc)
Scanning dependencies of target args_generate
[  0%] Building CXX object src/CMakeFiles/args_generate.dir/args_generate.cpp.o
[  0%] Linking CXX executable args_generate
[  0%] Built target args_generate
Scanning dependencies of target run_args_generate
[  0%] Generating header file for command line arguments evaluation
[  0%] Built target run_args_generate
Scanning dependencies of target draco
[  0%] Building CXX object src/CMakeFiles/draco.dir/draco.cpp.o
[ 14%] Building CXX object src/CMakeFiles/draco.dir/ringmap_data.cpp.o
/home/ec2-user/draco/src/draco.cpp: In lambda function:
/home/ec2-user/draco/src/draco.cpp:642:34: warning: variable ‘zero_clusters’ set but not used [-Wunused-but-set-variable]
  642 |             constexpr auto const zero_clusters = [](auto n_clusters) {
      |                                  ^~~~~~~~~~~~~
[ 14%] Building CXX object src/CMakeFiles/draco.dir/ringmap_matrix.cpp.o
[ 28%] Building CXX object src/CMakeFiles/draco.dir/mutation_map.cpp.o
[ 28%] Building CXX object src/CMakeFiles/draco.dir/mutation_map_transcript.cpp.o
[ 42%] Building CXX object src/CMakeFiles/draco.dir/ptba.cpp.o
[ 42%] Building CXX object src/CMakeFiles/draco.dir/kolmogorov_smirnov.cpp.o
[ 42%] Building CXX object src/CMakeFiles/draco.dir/partitioner.cpp.o
[ 57%] Building CXX object src/CMakeFiles/draco.dir/rna_secondary_structure.cpp.o
[ 57%] Building CXX object src/CMakeFiles/draco.dir/results/analysis.cpp.o
[ 71%] Building CXX object src/CMakeFiles/draco.dir/graph_cut.cpp.o
[ 71%] Building CXX object src/CMakeFiles/draco.dir/paired_rna_secondary_structure.cpp.o
[ 85%] Building CXX object src/CMakeFiles/draco.dir/spectral_partitioner.cpp.o
[ 85%] Building CXX object src/CMakeFiles/draco.dir/windows_merger.cpp.o
[100%] Building CXX object src/CMakeFiles/draco.dir/args.cpp.o
[100%] Linking CXX executable draco
/usr/bin/ld: cannot find -lopenblas
collect2: error: ld returned 1 exit status
make[2]: *** [src/draco] Error 1
make[1]: *** [src/CMakeFiles/draco.dir/all] Error 2
make: *** [all] Error 2
dincarnato commented 1 year ago

So, the compiler did the trick. Can you do a clean build, and change the parameter from "-DARMA_NO_WRAPPER=ON" to "-DARMA_NO_WRAPPER=OFF" in the cmake command?

wonaya commented 1 year ago

Yay! It's built, thanks for your help!

dincarnato commented 1 year ago

Great! Happy to hear. Have fun :-)