Giter Site home page Giter Site logo

mesytec-mvlc's People

Contributors

flueke avatar

Stargazers

 avatar

Watchers

 avatar

mesytec-mvlc's Issues

Compilation Error on Mac (Big Sur 11.3)

I understand that mvme may not be optimized for macOS but I was wondering if it would be possible to fix this issue. It could possibly be an issue on my end, I've never compiled a program like this from scratch. Following the instructions on your README, I run

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=~/local/mvme.../mvme

in the directory that contains the mvme build files and then

make -j6

which works up until

[ 26%] Built target jcon
[ 27%] Building CXX object external/mesytec-mvlc/src/mesytec-mvlc/CMakeFiles/mesytec-mvlc.dir/mvlc_factory.cc.o
[ 28%] Built target liba2_static
[ 28%] Building CXX object external/mesytec-mvlc/src/mesytec-mvlc/CMakeFiles/mesytec-mvlc.dir/mvlc_impl_eth.cc.o
[ 28%] Building CXX object external/mesytec-mvlc/src/mesytec-mvlc/CMakeFiles/mesytec-mvlc.dir/mvlc_impl_support.cc.o
In file included from /Users/jacksonlawrence/mvme/mvme-master/external/mesytec-mvlc/src/mesytec-mvlc/mvlc_dialog_util.cc:1:
/Users/jacksonlawrence/mvme/mvme-master/external/mesytec-mvlc/src/mesytec-mvlc/mvlc_dialog_util.h:240:26: error: implicit instantiation of undefined template 'std::__1::array<unsigned int, 7>'
    for (u32 triggerVal: triggerValues)
                         ^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
                                                               ^
In file included from /Users/jacksonlawrence/mvme/mvme-master/external/mesytec-mvlc/src/mesytec-mvlc/mvlc_dialog_util.cc:1:
/Users/jacksonlawrence/mvme/mvme-master/external/mesytec-mvlc/src/mesytec-mvlc/mvlc_dialog_util.h:261:48: error: implicit instantiation of undefined template 'std::__1::array<unsigned int, 7>'
    std::array<u32, stacks::ReadoutStackCount> triggerValues;
                                               ^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
                                                               ^
In file included from /Users/jacksonlawrence/mvme/mvme-master/external/mesytec-mvlc/src/mesytec-mvlc/mvlc_dialog_util.cc:1:
/Users/jacksonlawrence/mvme/mvme-master/external/mesytec-mvlc/src/mesytec-mvlc/mvlc_dialog_util.h:263:20: error: no matching function for call to 'begin'
    std::transform(std::begin(triggers), std::end(triggers), std::begin(triggerValues),
                   ^~~~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/initializer_list:99:1: note: candidate template ignored: could not match 'initializer_list' against 'array'
begin(initializer_list<_Ep> __il) _NOEXCEPT
^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/iterator:1772:1: note: candidate template ignored: could not match '_Tp [_Np]' against 'const std::array<StackTrigger, stacks::ReadoutStackCount>'
begin(_Tp (&__array)[_Np])
^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/iterator:1790:1: note: candidate template ignored: substitution failure [with _Cp = const std::__1::array<mesytec::mvlc::StackTrigger, 7>]: implicit instantiation of undefined template 'std::__1::array<mesytec::mvlc::StackTrigger, 7>'
begin(_Cp& __c) -> decltype(__c.begin())
^                              ~
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/iterator:1798:1: note: candidate template ignored: substitution failure [with _Cp = std::__1::array<mesytec::mvlc::StackTrigger, 7>]: implicit instantiation of undefined template 'std::__1::array<mesytec::mvlc::StackTrigger, 7>'
begin(const _Cp& __c) -> decltype(__c.begin())
^                                    ~
In file included from /Users/jacksonlawrence/mvme/mvme-master/external/mesytec-mvlc/src/mesytec-mvlc/mvlc_dialog_util.cc:1:
/Users/jacksonlawrence/mvme/mvme-master/external/mesytec-mvlc/src/mesytec-mvlc/mvlc_dialog_util.h:263:42: error: no matching function for call to 'end'
    std::transform(std::begin(triggers), std::end(triggers), std::begin(triggerValues),
                                         ^~~~~~~~
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/initializer_list:108:1: note: candidate template ignored: could not match 'initializer_list' against 'array'
end(initializer_list<_Ep> __il) _NOEXCEPT
^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/iterator:1780:1: note: candidate template ignored: could not match '_Tp [_Np]' against 'const std::array<StackTrigger, stacks::ReadoutStackCount>'
end(_Tp (&__array)[_Np])
^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/iterator:1806:1: note: candidate template ignored: substitution failure [with _Cp = const std::__1::array<mesytec::mvlc::StackTrigger, 7>]: implicit instantiation of undefined template 'std::__1::array<mesytec::mvlc::StackTrigger, 7>'
end(_Cp& __c) -> decltype(__c.end())
^                            ~
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/iterator:1814:1: note: candidate template ignored: substitution failure [with _Cp = std::__1::array<mesytec::mvlc::StackTrigger, 7>]: implicit instantiation of undefined template 'std::__1::array<mesytec::mvlc::StackTrigger, 7>'
end(const _Cp& __c) -> decltype(__c.end())
^                                  ~
In file included from /Users/jacksonlawrence/mvme/mvme-master/external/mesytec-mvlc/src/mesytec-mvlc/mvlc_dialog.cc:21:
In file included from /Users/jacksonlawrence/mvme/mvme-master/external/mesytec-mvlc/src/mesytec-mvlc/mvlc_dialog.h:33:
/Users/jacksonlawrence/mvme/mvme-master/external/mesytec-mvlc/src/mesytec-mvlc/../mesytec-mvlc/mvlc_stack_errors.h:79:53: error: implicit instantiation of undefined template 'std::__1::array<std::__1::unordered_map<mesytec::mvlc::StackErrorInfo, unsigned long>, 8>'
    std::array<ErrorInfoCounts, stacks::StackCount> stackErrors;
                                                    ^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
                                                               ^
In file included from /Users/jacksonlawrence/mvme/mvme-master/external/mesytec-mvlc/src/mesytec-mvlc/mvlc.cc:29:
In file included from /Users/jacksonlawrence/mvme/mvme-master/external/mesytec-mvlc/src/mesytec-mvlc/mvlc.h:40:
/Users/jacksonlawrence/mvme/mvme-master/external/mesytec-mvlc/src/mesytec-mvlc/mvlc_stack_errors.h:79:53: error: implicit instantiation of undefined template 'std::__1::array<std::__1::unordered_map<mesytec::mvlc::StackErrorInfo, unsigned long>, 8>'
    std::array<ErrorInfoCounts, stacks::StackCount> stackErrors;
                                                    ^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
                                                               ^
In file included from /Users/jacksonlawrence/mvme/mvme-master/external/mesytec-mvlc/src/mesytec-mvlc/mvlc_factory.cc:28:
In file included from /Users/jacksonlawrence/mvme/mvme-master/external/mesytec-mvlc/src/mesytec-mvlc/mvlc_factory.h:32:
In file included from /Users/jacksonlawrence/mvme/mvme-master/external/mesytec-mvlc/src/mesytec-mvlc/../mesytec-mvlc/mvlc.h:40:
/Users/jacksonlawrence/mvme/mvme-master/external/mesytec-mvlc/src/mesytec-mvlc/mvlc_stack_errors.h:79:53: error: implicit instantiation of undefined template 'std::__1::array<std::__1::unordered_map<mesytec::mvlc::StackErrorInfo, unsigned long>, 8>'
    std::array<ErrorInfoCounts, stacks::StackCount> stackErrors;
                                                    ^
/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/usr/include/c++/v1/__tuple:219:64: note: template is declared here
template <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;
                                                               ^
4 errors generated.
make[2]: *** [external/mesytec-mvlc/src/mesytec-mvlc/CMakeFiles/mesytec-mvlc.dir/mvlc_dialog_util.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
1 error generated.
make[2]: *** [external/mesytec-mvlc/src/mesytec-mvlc/CMakeFiles/mesytec-mvlc.dir/mvlc.cc.o] Error 1
/Users/jacksonlawrence/mvme/mvme-master/external/mesytec-mvlc/src/mesytec-mvlc/mvlc_impl_eth.cc:16:14: fatal error: 'sys/prctl.h' file not found
    #include <sys/prctl.h>
             ^~~~~~~~~~~~~
1 error generated.
make[2]: *** [external/mesytec-mvlc/src/mesytec-mvlc/CMakeFiles/mesytec-mvlc.dir/mvlc_dialog.cc.o] Error 1
1 error generated.
make[2]: *** [external/mesytec-mvlc/src/mesytec-mvlc/CMakeFiles/mesytec-mvlc.dir/mvlc_factory.cc.o] Error 1
1 error generated.
make[2]: *** [external/mesytec-mvlc/src/mesytec-mvlc/CMakeFiles/mesytec-mvlc.dir/mvlc_impl_eth.cc.o] Error 1
make[1]: *** [external/mesytec-mvlc/src/mesytec-mvlc/CMakeFiles/mesytec-mvlc.dir/all] Error 2
make: *** [all] Error 2

Thanks in advance for any help!

Compilation fails on Manjaro Linux

gcc -dumpversion
11.1.0
uname -a
Linux krnbg007 5.10.42-1-MANJARO #1 SMP PREEMPT Thu Jun 3 14:37:11 UTC 2021 x86_64 GNU/Linux

error message:

[ 58%] Building CXX object src/mesytec-mvlc/CMakeFiles/mesytec-mvlc.dir/mvlc_replay.cc.o
mesytec-mvlc/src/mesytec-mvlc/mvlc_replay.cc: In Elementfunktion »void mesytec::mvlc::ReplayWorker::Private::loop(std::promisestd::error_code)«:
mesytec-mvlc/src/mesytec-mvlc/mvlc_replay.cc:342:35: Fehler: sleep_for« ist kein Element von »std::this_thread«
342 | std::this_thread::sleep_for(PauseSleepDuration);
| ^~~~~~~~~
make[2]: *** [src/mesytec-mvlc/CMakeFiles/mesytec-mvlc.dir/build.make:342: src/mesytec-mvlc/CMakeFiles/mesytec-mvlc.dir/mvlc_replay.cc.o] Fehler

Leftover calls of disable_all_triggers

The function was renamed and there are some references left over from before the refactor:

extras/mvlc-ctrl-tests/mvlc_ctrl_test_stack_executor.cc:31: if (auto ec = disable_all_triggers(mvlc))
extras/mvlc-ctrl-tests/mvlc_ctrl_test_stack_executor.cc:138: if (auto ec = disable_all_triggers(mvlc))
extras/mvlc-ctrl-tests/mvlc_ctrl_test_stack_executor.cc:231: if (auto ec = disable_all_triggers(mvlc))
extras/mvlc-ctrl-tests/mvlc_ctrl_test_stack_executor.cc:342: if (auto ec = disable_all_triggers(mvlc))
src/mesytec-mvlc/mvlc_impl_usb.cc:352: ec = f.get(); // wait here for disable_all_triggers() to complete

Compilation problem using mesytec-mvlc: fatal error: argh.h: No such file or directory

Hi Florian
I built & installed the main branch as a stand-alone package (outside of mvme package) on my Ubuntu laptop
and then tried to compile https://gitlab.in2p3.fr/mesytec-ganil/mesytec_data using the mesytec-mvlc::mesytec-mvlc
CMake target (which has always worked when mesytec-mvlc is installed as part of mvme).

The problem is:
In file included from /home/frankland/software/install/include/mesytec-mvlc/mesytec-mvlc.h:37,
from /home/frankland/software/sources/mesytec_data/lib/mesytec_buffer_reader_mvlc_parser.h:4,
from /home/frankland/software/sources/mesytec_data/lib/mesytec_buffer_reader_mvlc_parser.cpp:1:
/home/frankland/software/install/include/mesytec-mvlc/mvlc_factory.h:31:10: fatal error: argh.h: No such file or directory
31 | #include <argh.h>

argh.h is installed by mesytec-mvlc in include/mesytec-mvlc, so it's a question of include paths.

I have found a workaround, I don't know if it may have side-effects:
modify the INSTALL_INTERFACE include directory in external/argh/CMakeLists.txt: line 35
target_include_directories(argh .... $<INSTALL_INTERFACE:include/mesytec-mvlc>)

Cheers
John

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.