Topic: Compile errors using Rad Studio XE5

I just installed Rad Studio XE5 and tried to compile but got several errors.

For starters, when linking Icomp.bpl it says "Unable to open file 'BCBATL.LIB'"

Then, when compiling Func32, I get errors like this :

[bcc32 Error] closures.hpp(240): E2299 Cannot generate template specialization from 'impl::closure_frame_holder<FrameT>'
  Full parser context
    Parser.cpp(32): #include C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\include\boost_1_39\boost/spirit/include/classic_attribute.hpp
    classic_attribute.hpp(11): #include C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\include\boost_1_39\boost/spirit/home/classic/attribute.hpp
    attribute.hpp(35): #include C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\include\boost_1_39\boost/spirit/home/classic/attribute/closure.hpp
    closure.hpp(21): #include C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\include\boost_1_39\boost/spirit/home/classic/phoenix/closures.hpp
    closures.hpp(22): namespace phoenix
    closures.hpp(215): class closure_frame<ClosureT>
[bcc32 Error] closures.hpp(240): E2040 Declaration terminated incorrectly



Can anyone give me some pointers as to what I need to tweak?  Or if there's a different version of the compiler that I can get which will work better?

THanks

Re: Compile errors using Rad Studio XE5

I am using C++ Builder XE and I expect you will need to change some of the code to get it to compile with XE5.

BCBATL.LIB is located under Libraries\Atl. However as it is compiled with C++ Builder XE you probably need to recompile it. The code for it is there as well.

The compiler error seems to be caused by a bug in the compiler. A comment at the top of Parser.cpp describes the solution:
/* Compiler bug:
* When compiling under C++ Builder XE, you will get this error:
* [BCC32 Error] closures.hpp(237): E2299 Cannot generate template specialization from 'impl::closure_frame_holder<FrameT>'
* To fix it, change line 237 in closures.hpp to:
* impl::closure_frame_holder<closure_frame<ClosureT> >& frame;
* See also QC report #79813
*/

Re: Compile errors using Rad Studio XE5

Thanks!! That definitely helped ... for anyone else reading this, instead of building BCBATL.LIB I copied it from the Graph repository (it's in Libraries/Atl) to the release directory (C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\lib\win32\release).

However, I'm now running into a problem compiling graph.exe.  Is there an easy fix for this compilation error?

Compiling Graph.cbproj (Release, Win32)
dcc command line for "..\Libraries\dxgettext\gnugettext.pas"
  c:\program files (x86)\embarcadero\rad studio\12.0\bin\dcc32.exe -AGenerics.Collections=System.Generics.Collections;
  Generics.Defaults=System.Generics.Defaults;WinTypes=Winapi.Windows;WinProcs=Winapi.Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE -DNDEBUG;
  _HAS_TRADITIONAL_ITERATORS=1;STRICT -I"c:\program files (x86)\embarcadero\rad studio\12.0\lib\Win32\release";"\\cifs.cs.brown.edu\dfs\home\bcz\My
  Documents\RAD Studio\12.0\Imports";"c:\program files (x86)\embarcadero\rad studio\12.0\Imports";"C:\Users\Public\Documents\RAD Studio\12.0\Dcp";
  "c:\program files (x86)\embarcadero\rad studio\12.0\include";"C:\Program Files (x86)\FastReports\LibD19";"C:\Program Files
  (x86)\Raize\CS5\Lib\RS-XE5\Win32" -LERelease -NURelease -NSData.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;System;Xml;Data;Datasnap;Web;Soap;
  System.Bindings;Vcl;System.Win;Winapi -O"c:\program files (x86)\embarcadero\rad studio\12.0\lib\Win32\release";"\\cifs.cs.brown.edu\dfs\home\bcz\My
  Documents\RAD Studio\12.0\Imports";"c:\program files (x86)\embarcadero\rad studio\12.0\Imports";"C:\Users\Public\Documents\RAD Studio\12.0\Dcp";
  "c:\program files (x86)\embarcadero\rad studio\12.0\include";"C:\Program Files (x86)\FastReports\LibD19";"C:\Program Files
  (x86)\Raize\CS5\Lib\RS-XE5\Win32" -R"c:\program files (x86)\embarcadero\rad studio\12.0\lib\Win32\release";"\\cifs.cs.brown.edu\dfs\home\bcz\My
  Documents\RAD Studio\12.0\Imports";"c:\program files (x86)\embarcadero\rad studio\12.0\Imports";"C:\Users\Public\Documents\RAD Studio\12.0\Dcp";
  "c:\program files (x86)\embarcadero\rad studio\12.0\include";"C:\Program Files (x86)\FastReports\LibD19";"C:\Program Files
  (x86)\Raize\CS5\Lib\RS-XE5\Win32" -U"c:\program files (x86)\embarcadero\rad studio\12.0\lib\Win32\release";"\\cifs.cs.brown.edu\dfs\home\bcz\My
  Documents\RAD Studio\12.0\Imports";"c:\program files (x86)\embarcadero\rad studio\12.0\Imports";"C:\Users\Public\Documents\RAD Studio\12.0\Dcp";
  "c:\program files (x86)\embarcadero\rad studio\12.0\include";"C:\Program Files (x86)\FastReports\LibD19";"C:\Program Files
  (x86)\Raize\CS5\Lib\RS-XE5\Win32" -V -VN -JPHNE -NBRelease -NORelease --BCB -CG ..\Libraries\dxgettext\gnugettext.pas     
[DCC Error] gnugettext.pas(926): E2250 There is no overloaded version of 'EnumResourceModules' that can be called with these arguments

Re: Compile errors using Rad Studio XE5

So I've managed to get Graph to compile by modifying a handful of things -- mostly type mismatches but I had to remove the DllLoadFailure callback handler and get rid of the ValueListEditor in GuiUtil.cpp.  I also had to remove the Rtti structures defined in PyVclConvert.h in favor of including System.Rtti.hpp (and editing(!) System.Rtti.hpp to make some methods/fields public).

Not surprisingly (to me) when I run it dies apparently when initializing Form1 in the TCustomForm constructor.  The error is:

First chance exception at $76FEC41F. Exception class EOSError with message
'System Error.  Code: 1410.
Class already exists'.
Process Graph.exe (8428)

Any ideas what the problem might be?  Is there another branch of the source code I can get that works with Rad Studio Xe5?

Re: Compile errors using Rad Studio XE5

I am afraid you have to debug it yourself. I have never tried to compile it with C++ Builder XE5.

Re: Compile errors using Rad Studio XE5

Unfortunately, after spending hours on this and searching the web, I'm not able to make any more progress.

If anyone is ever able to get this to compile and run with C++ Builder XE5  (or any other *available* development environment for Windows), please let me know!

Re: Compile errors using Rad Studio XE5

Compile RAD Studio XE5 Project Group Operation
The Compile RAD Studio XE5 Project Group operation lets you compile a group of Embarcadero RAD Studio XE5 projects from your macros.

Requirements
In order for the operation to execute successfully, Embarcadero RAD Studio XE5 must be installed on your computer. Otherwise, an error will occur.

Child Operations
The operation cannot have child operations.

Operation Properties
The operation properties are organized into the following pages:

Properties
This page contains properties common for all operations. For more information on them, see Properties That Are Common for All Operations. We would like to draw your attention to the Timeout property on this page:

Timeout

The purpose of this property is to stop Embarcadero RAD Studio XE5 if it is working too long and probably has frozen. When the operation execution reaches the timeout limit, Automated Build Studio closes the Embarcadero RAD Studio XE5 instance started by the operation. Using the operation's Timeout property is one of two ways to set the timeout limit for operations. Besides the operation's Timeout property, you can use the timeout common for all operations in the macro (see Macro Properties Dialog).

Project Group


Required. Specifies the name of the project group file (.groupproj) that contains the projects to be compiled. For instance, C:\Projects\MyProjectGroup.groupproj. You can either enter the file name itself, or press the ellipsis button and choose the desired file via the standard Open File dialog. Alternatively, you can specify an existing variable or constant that holds the file name. To specify the property value, you can also use single-line scripts.

Re: Compile errors using Rad Studio XE5

I am anxious you need to troubleshoot it yourself.....