flueke / mesytec-mvlc Goto Github PK
View Code? Open in Web Editor NEWDriver and utility library for the mesytec MVLC VME controller
License: Other
Driver and utility library for the mesytec MVLC VME controller
License: Other
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!
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
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
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.