nexusformat / code

NeXus API code and helper applications
GNU Lesser General Public License v2.1
12 stars 16 forks source link

Build error on Windows #477

Open StephenSmith25 opened 3 years ago

StephenSmith25 commented 3 years ago

I'm trying to build on windows but I'm encountering an issue while generating the bindings:

..\bindings\cpp\NeXusFile.cpp(1243): error C2131: expression did not evaluate to a constant

I'm currently building with MSVC 2019. Is there a way around this issue? Variable length arrays have never been supported by MSVC (as they are not strictly part of the c++ standard). I'm currently trying to create a windows conda package for nexus, so locally changing the source isn't an option - I suppose I could create a patch. Just wondering if this is a known issue? Or if I'm doing something wrong.

FreddieAkeroyd commented 3 years ago

No, it looks like that part has not been compiled on windows - I also noticed that char* char_data is allocated and not freed later on resulting in a memory leak. I will create a fix,

FreddieAkeroyd commented 3 years ago

Hi @StephenSmith25 it looks like this has already been fixed in https://github.com/nexusformat/code/pull/474/commits/f905c6eb430e67390aa097e992ece450ce591926 as part of https://github.com/nexusformat/code/pull/474 I am not sure when this PR will be tested and merged, what would be most helpful for you at this time? I could create a separate branch based on 4.4.3 with the above change cherry picked if that would be helpful?

StephenSmith25 commented 3 years ago

Hi Freddie. At the moment I've created my own patch for the issue so that will probably be okay until the PR you linked is merged, so no need for a separate branch. Thanks for looking into this.