On 10/06/2018 15:47, Day, Julian wrote:
Hi,

First off, I wanted to say thank you for all the hard work that's been put into 
Xerces-C++ over the years.  I've been using it as a developer since 2006, both 
professionally and personally.

At the moment, I'm trying to update my build environment to use the latest 
release in my roguelike game.  I'm currently using Xerces-C++ 3.1.1.  I believe 
I downloaded a binary distribution for this, but since these aren't available 
for the more recent releases, I'm trying to build it myself.

I downloaded the sources for 3.2.1, and unzipped them.  I then went to the "Build 
Instructions" page.  In a Visual Studio administrator command prompt, I navigated to the 
unzipped sources, and ran "cmake .".

I've uploaded this to:

https://pastebin.com/D5K8K3Cg

Then, in the same directory and in the same VS admin command prompt, I ran "cmake 
--build .".  Once this finished, I had about two dozen linker errors.  I've saved 
the output to:

https://pastebin.com/n9BM9dmS

I'm using Visual Studio 2017 and cmake 3.11.3 on Windows 10.  Are there any 
steps I've missed?  I've tried to follow the provided instructions.  Any ideas 
or suggestions would be greatly appreciated.

Dear Julian,

Firstly, I think you have found a bug with a combination of configuration options we haven't explicitly tested with VS2017, namely:

- icu
- char16_t as XMLCh

ICU is expecting wchar_t, and we need to explicitly reinterpret_cast from e.g. const char16_t * to const wchar_t *.

I thought we had already fixed all these cases, but there are so many different ways you can configure Xerces-C++, it's quite possible I've missed this particular combination.

Secondly, this error:
  library machine type 'x64' conflicts with target machine type 'x86'
indicates that you are mixing 64- and 32-bit libraries, which isn't allowed. The first thing that jumps out is the use of Anaconda for ICU. Is that the wrong bitness? Did you build from the correct Visual Studio command prompt e.g. x64 native? Of you build from a regular command prompt, you can use -G "Visual Studio 15 2017 [Win64]" to explicitly specify 32-bit without the Win64 suffix, or 64-bit with the Win64 suffix.

I can check out the first issue during the week, and provide any fix required there. For the second, you'll need to double-check how you're building and which libraries are which bitness.


Regards,
Roger

Reply via email to