We are using an older version of Visual Studio (2008/VC9 configuration) and I'm having problems compiling ACE 6.4.7 for x64. I use the following steps to create the VC9 project and solution files:
1. Create a default.features file with:
ssl=1
openssl11=1
2. Run
perl c:\ACE_wrappers\bin\mwc.pl -type vc9 -recurse -hierarchy -relative ACE_ROOT=c:\ACE_wrappers
3. Create config.h with:
// This is set to be able to call ACE_Reactor::purge_pending_notifications.
// This is needed because otherwise notifications can arrive at an EventHandler
// for which handle_close is called
#define ACE_HAS_REACTOR_NOTIFICATION_QUEUE 1
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
#define ACE_HAS_STDCPP_STL_INCLUDES 1
#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
#define ACE_NO_INLINE 1
// Uncomment the following line to enable ACE debug logging
//#define ACE_NTRACE 0
#include "ace/config-win32.h"
4. We are using STLPort 5.2.1 so we add the proper directories in Visual Studio 2008
5. Run the following in a Visual Studio 2008 x64 Win64 command prompt
set SSL_ROOT=C:\OpenSSL\REL
devenv C:\ACE_wrappers\ace\ace.sln
When I now compile e.g. ACE.cpp (using Debug|x64) I get the following errors:
Compiling...
ACE.cpp
c:\program files (x86)\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(17) : error C2371: 'size_t' : redefinition; different basic types
predefined C++ types (compiler internal)(19) : see declaration of 'size_t'
C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winnt.h(12935) : error C3861: '__readfsdword': identifier not found
C:\Modules\STLPort\R5_2_1\Include\stlport\stl/_algobase.h(256) : warning C4244: 'argument' : conversion from 'const ptrdiff_t' to 'size_t', possible loss of data
C:\Modules\STLPort\R5_2_1\Include\stlport\stl/_algobase.h(627) : warning C4244: 'argument' : conversion from 'const ptrdiff_t' to 'size_t', possible loss of data
.\ACE.cpp(579) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(635) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(814) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(869) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1026) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1093) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1356) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1416) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1598) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1654) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1818) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1891) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(2134) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(2177) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
Any suggestions on how to fix this? Compilation for x64 works as I can compile OpenSSL 1.1.0h without problems.
Hi,
Very strange, haven't seen this before, maybe related to STLPort?
Best regards,
Johnny Willemsen
Remedy IT
http://www.remedy.nl
On Monday, April 16, 2018 at 12:28:22 PM UTC+2, Kees de Bruin wrote:
We are using an older version of Visual Studio (2008/VC9 configuration) and I'm having problems compiling ACE 6.4.7 for x64. I use the following steps to create the VC9 project and solution files:
1. Create a default.features file with:
ssl=1
openssl11=1
2. Run
perl c:\ACE_wrappers\bin\mwc.pl -type vc9 -recurse -hierarchy -relative ACE_ROOT=c:\ACE_wrappers
3. Create config.h with:
// This is set to be able to call ACE_Reactor::purge_pending_notifications.
// This is needed because otherwise notifications can arrive at an EventHandler
// for which handle_close is called
#define ACE_HAS_REACTOR_NOTIFICATION_QUEUE 1
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
#define ACE_HAS_STDCPP_STL_INCLUDES 1
#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
#define ACE_NO_INLINE 1
// Uncomment the following line to enable ACE debug logging
//#define ACE_NTRACE 0
#include "ace/config-win32.h"
4. We are using STLPort 5.2.1 so we add the proper directories in Visual Studio 2008
5. Run the following in a Visual Studio 2008 x64 Win64 command prompt
set SSL_ROOT=C:\OpenSSL\REL
devenv C:\ACE_wrappers\ace\ace.sln
When I now compile e.g. ACE.cpp (using Debug|x64) I get the following errors:
Compiling...
ACE.cpp
c:\program files (x86)\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(17) : error C2371: 'size_t' : redefinition; different basic types
predefined C++ types (compiler internal)(19) : see declaration of 'size_t'
C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winnt.h(12935) : error C3861: '__readfsdword': identifier not found
C:\Modules\STLPort\R5_2_1\Include\stlport\stl/_algobase.h(256) : warning C4244: 'argument' : conversion from 'const ptrdiff_t' to 'size_t', possible loss of data
C:\Modules\STLPort\R5_2_1\Include\stlport\stl/_algobase.h(627) : warning C4244: 'argument' : conversion from 'const ptrdiff_t' to 'size_t', possible loss of data
.\ACE.cpp(579) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(635) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(814) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(869) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1026) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1093) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1356) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1416) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1598) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1654) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1818) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1891) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(2134) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(2177) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
Any suggestions on how to fix this? Compilation for x64 works as I can compile OpenSSL 1.1.0h without problems.
Instead of building from the IDE I can get it to compile from the command prompt:
1. Open Visual Studio 2008 x64 Win64 command prompt
2. Set SSL_ROOT
3. Set INCLUDE and LIB to have STLPort in front
4. Run devenv ace.sln /rebuild "Debug|x64" /project ace.vcproj /useenv
Now it will properly build the ACE library.
The "/useenv" is critical as it seems that the paths are not set properly when omitted.
Based on this it seems that the IDE is not getting the proper paths which is confirmed when you start a command prompt from the IDE and inspect the value of PATH.
For now I've updated our development guide to build ACE using the command line instead of the IDE.
Op donderdag 19 april 2018 08:39:22 UTC+2 schreef Johnny Willemsen:
Hi,
Very strange, haven't seen this before, maybe related to STLPort?
Best regards,
Johnny Willemsen
Remedy IT
http://www.remedy.nl
On Monday, April 16, 2018 at 12:28:22 PM UTC+2, Kees de Bruin wrote:
We are using an older version of Visual Studio (2008/VC9 configuration) and I'm having problems compiling ACE 6.4.7 for x64. I use the following steps to create the VC9 project and solution files:
1. Create a default.features file with:
ssl=1
openssl11=1
2. Run
perl c:\ACE_wrappers\bin\mwc.pl -type vc9 -recurse -hierarchy -relative ACE_ROOT=c:\ACE_wrappers
3. Create config.h with:
// This is set to be able to call ACE_Reactor::purge_pending_notifications.
// This is needed because otherwise notifications can arrive at an EventHandler
// for which handle_close is called
#define ACE_HAS_REACTOR_NOTIFICATION_QUEUE 1
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
#define ACE_HAS_STDCPP_STL_INCLUDES 1
#define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
#define ACE_NO_INLINE 1
// Uncomment the following line to enable ACE debug logging
//#define ACE_NTRACE 0
#include "ace/config-win32.h"
4. We are using STLPort 5.2.1 so we add the proper directories in Visual Studio 2008
5. Run the following in a Visual Studio 2008 x64 Win64 command prompt
set SSL_ROOT=C:\OpenSSL\REL
devenv C:\ACE_wrappers\ace\ace.sln
When I now compile e.g. ACE.cpp (using Debug|x64) I get the following errors:
Compiling...
ACE.cpp
c:\program files (x86)\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(17) : error C2371: 'size_t' : redefinition; different basic types
predefined C++ types (compiler internal)(19) : see declaration of 'size_t'
C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winnt.h(12935) : error C3861: '__readfsdword': identifier not found
C:\Modules\STLPort\R5_2_1\Include\stlport\stl/_algobase.h(256) : warning C4244: 'argument' : conversion from 'const ptrdiff_t' to 'size_t', possible loss of data
C:\Modules\STLPort\R5_2_1\Include\stlport\stl/_algobase.h(627) : warning C4244: 'argument' : conversion from 'const ptrdiff_t' to 'size_t', possible loss of data
.\ACE.cpp(579) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(635) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(814) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(869) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1026) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1093) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1356) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1416) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1598) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1654) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1818) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(1891) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(2134) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
.\ACE.cpp(2177) : warning C4244: '+=' : conversion from 'ssize_t' to 'size_t', possible loss of data
Any suggestions on how to fix this? Compilation for x64 works as I can compile OpenSSL 1.1.0h without problems.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 285 |
Nodes: | 16 (2 / 14) |
Uptime: | 75:15:52 |
Calls: | 6,489 |
Calls today: | 2 |
Files: | 12,096 |
Messages: | 5,276,078 |