-
Notifications
You must be signed in to change notification settings - Fork 13
Adding support for string time series - Follow up on #43 #46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Hi @cbrnr , I have a pending PR to fix SigViewer as well, but I just realized: SigViewer and libbiosig does not compile on Windows. I only have a Windows laptop. How could we do this? |
Well, the |
I suggest to switch to gnu compiler, e.g mingw. In fact, mxe can be used to build sigviewer for windows. So, there is solution - I do not see the need to for an msvc-based build on windows. |
This is a good idea. Can you try gcc @Yida-Lin? |
@Yida-Lin then you have to add the missing headers and libraries I guess? |
I assume you added the corresponding LIBS flags? It might also be a mismatch between library settings and build settings (https://stackoverflow.com/a/10059399/1112283). What I did (years ago) was to build libbiosig natively on Windows (using MinGW), but I disabled most dependencies (e.g. suitesparse). The static library produced like this did work when compiling SigViewer. I'm not sure if this is still an option, but it would certainly make things easier when you don't have to carry around so many dependencies. |
Another idea: did you make sure to use the same architecture (i.e., 64bit) for everything? It looks like you might have downloaded the 32bit version of libbiosig, see e.g. this post. |
Hi @cbrnr , I tried again adding all the library flags, but has the following issue: Regarding 64bit: yes, I downloaded the 64 bit libbiosig, otherwise there won't be a |
Thanks for checking @Yida-Lin (the file libb64.a is also present in the 32bit version though). I don't know why this is not working, it seems like the cross-compiled library is not compatible with the native libs somehow? The only thing that comes to my mind is to try and compile libbiosig on Windows. |
@Yida-Lin Biosig 3.9 contains more precompiled libs for Windows, can you try if this update fixes the problem? |
Hi @cbrnr , thanks for the instructions. I did try using the following link: here is my configuration: I am using the SigView main branch at tip, but got the following errors: |
Can you try adding the following libs?
|
I've updated biosig-3.9.0-Windows-64bit.zip in such a way that libws2_32.a is provided, and the .../bin/*.dll are omitted. The link is the same: Let me know if this fixes the issue. |
Could it be you're using a 32bit MinGW and a 64bit libbiosig? |
Very weird. Some additional things you could check:
|
I've now also included libmsvcrt.a , and uploaded the revised version to the same address. |
@schloegl why is it necessary that you provide these libraries? These should be available on any Windows installation. |
I do not know. You need to tell me why you need it . I guess it has to do with the fact, that we use here static linking. |
Thanks @schloegl, I appreciate your help! It is also rather difficult for me to reproduce this issue, because I do not have a Windows machine. My problem here is that I would really like SigViewer to compile and build natively on Windows, as this was the case previously. I'm not sure when this stopped working, but I remember that it did work at some point. I suggest that we (and by "we" I unfortunately mean just @Yida-Lin as the only person with a Windows machine here) start trying to build libbiosig on Windows using MinGW-W64. I suspect that the issue is caused by MXE builds not being 100% compatible with native Windows builds. @Yida-Lin, would you be up for trying that? Basically, you could start with downloading the latest biosig source and then running |
Thanks @Yida-Lin! If possible, please also try the two things I suggested in a previous comment. |
Hi @cbrnr , I gave it a try, but ran into the following error when compiling libbiosig on Windows: |
@schloegl can you help? There is a
And this header should then be included in both |
You ask me to review this, here are my comments.
[1] https://sourceforge.net/p/biosig/code/ci/master/tree/biosig4c++/Makefile.in#l131 |
This makes me wonder if running Technically, you could probably use MXE in WSL2, but this sounds a bit strange (installing a virtualized Linux on Windows just to use it to cross-compile Windows binaries)... |
I'm not maintaining and supporting builts of libiosig on windows anymore. Maintaining such a setup is a significant effort, w/o any obvious benefiit. From my POV, MXE and Wine are good enough and do the job, and as demonstrated in past, it is possible to provide SigViewer for Windows through that toolchain. |
I understand that, but it essentially broke the ability to build SigViewer on Windows, which had worked before. I'm not a fan of that, but I suppose we'll have to work around it for now. |
Follow up on #43.
As discussed:
eventMap
and usetime_series
to handle all types of data.std::variant<std::vector<...>>
instead ofstd::vector<std::variant<...>>
to be more efficient (avoiding redundantstd::visit
)