[omniORB] Please add support for building with VisualStudio14

Duncan Grisby duncan at grisby.org
Wed Aug 12 12:34:05 BST 2015


On Tue, 2015-08-11 at 15:45 +0200, szyk100 wrote:

> Thank you for that help (however I was a bit confused when I see 8
> (eight!!!) diffrent command prompts in Visual Studio start folder).

Yes, Visual Studio installs lots of command prompts with different
environments, for various permutations of cross compilers and target
architectures. I only have six in my install. You want the one called
"VS2015 x64 Native Tools Command Prompt".

> But I got other error. Problem was with Python. It seems to me that it
> don't compile with Cygwin version of Python 2.7.

Yes. If you are compiling with Visual Studio, you need the Python from
python.org, which is also built with Visual Studio. The Cygwin version
doesn't have the right linkage.

>  So I installed pure windows 64bit version. But I have got unresolved
> externals (conflict 64bit library with 32bit target - is omniorb only
> 32bit???). 

That implies that you are using the 32 bit compilers. Unless you
particularly want a 32 bit build of omniORB (I doubt it!), you should
use the 64 bit Python and the x64 command prompt so you have the 64 bit
compilers.

> I have installed 32bit version of Python in C:\Program Files
> (x86)\python27 but it fail again with compilation. I have added path
> to:
> C:\!-pro\lib\omniORB-4.2.0\mk\platforms\x86_win32_vs_10.mk

Do you really have an exclamation mark in your path?  That is just
asking for trouble, because it tends to be interpreted specially by
various things. To avoid potential trouble with that, put the omniORB
distribution (and everything else) in a simple path without any special
characters.

[...]
> corbaOrb.cc(947): error C3688: invalid literal suffix 'ORB_ID_STRING';
> literal operator or literal operator template 'operator
> ""ORB_ID_STRING' not found

I would consider that a bug in the Visual Studio compiler. The code has
a macro that expands to a string literal, and it concatenates it with
another string literal, but with no space between the two. That's
illegal in C++ 11, but allowed in C++ versions before that. omniORB's
code has already been updated to change it, which is why the compile
works for me.

Either edit the file it complains about (src\lib\omniORB\orbcore
\corbaOrb.cc) to add a space in front of the uses of ORB_ID_STRING that
don't already have a space, or get the latest snapshot from 

http://www.omniorb.net/snapshots/omniORB-4.2-latest.tar.gz

Cheers,

Duncan.

-- 
 -- Duncan Grisby         --
  -- duncan at grisby.org     --
   -- http://www.grisby.org --





More information about the omniORB-list mailing list