Menu

Building OWL with BCC101 free C++ compiler

pc
2018-04-17
2018-04-30
  • pc

    pc - 2018-04-17

    hello,

    I'm trying to build OWL (6.43) with the free compiler BCC101 we can find at https://www.embarcadero.com/fr/free-tools/ccompiler

    Is there a way to compile OWL with it ? Because :

    1) the compiler is bcc32c.exe (CLang version) and not bcc32.exe (Borland version) and the bc.mak uses the second one.
    2) boost library is needed and is not provided with BCC101. When we try to load this library for Embarcadero (v.1.55) at http://altd.embarcadero.com/releases/radstudio/18.0/boost_18.zip we had the message "no supporting embarcadero development tool installation has been found" and the same version of boost (v.1.55) at https://sourceforge.net/projects/boost/files/boost/1.55.0/ seems to have a different tree

    thanks for any answer

     
  • Ognyan Chernokozhev

    Hi,

    You can build OWLNext with the free C++ Builder compiler. The easiest way to do it is to use the OWLMaker tool: https://sourceforge.net/p/owlnext/wiki/OWLMaker/

    As for Boost, you need version 1.39, best to do it from the package manager in C++ Builder IDE, it will download and install both 1.39 and 1.55.

    Jogy

    P.S. I also recomment to get OWLNext 6.44 which is the latest stable release.

     
  • Ognyan Chernokozhev

    Actually, if you are building with the 32-bit CLang compiler (since the free version does not include 64-bit), there is one correction that needs to be done - in the file include\owl\private\borlandc.h, the lines

    #if defined(_WIN64)
    #define OWL_HAS_STD_EXCEPTION_PTR
    #endif
    

    need to be changed to

    #if defined(__clang__)
    #define OWL_HAS_STD_EXCEPTION_PTR
    #endif
    

    This will be corrected in the next 6.44 update.

    Jogy

     
  • Vidar Hasfjord

    Vidar Hasfjord - 2018-04-18

    I'm trying to build OWL (6.43) with the free compiler BCC101

    Hi Christian and Jogy, I have done some partial work on this. See "Support for the Embarcadero Free C++ Compiler " [feature-requests:#100]. Also see "Building 6.35 with Embarcadero free C++ compiler" [discussion:c8946fcc].

     

    Related

    Discussion: c8946fcc
    Feature Requests: #100

  • pc

    pc - 2018-04-19

    Hi Jogy and Vidar, and thanks for your answers.
    I just took a look at this, and learned some things :
    1) bcc32c do not use (needs not) boost library to compile OWL
    2) CodeGuard seems to be only for bcc32 (and not for bcc32c)

    With the job made by Vidar, the correction in borlandc.h shown by jogy, I managed to compile OWL, except this was extremely slow (perhaps because precompiled headers were not set up entirely) and after I corrected a bug that I present to you :

    hlpmanag.cpp : line 45 :

    #if defined(__BORLANDC__) and !defined(_WIN64)
    

    might be replaced by

    #if defined(__BORLANDC__) and !defined(__clang__)
    

    It would be cool for the future to have (like I did) a cl.mak and clmake.bat in the source/owlcore folder (cl for clang).
    I will continue my investigations later and has the project to see the possibility of compiling OWL with GNU thru mingw : If you have important info about this, thanks in advance.

    christian

    PS: I compiled 6.43 but I saw that the code for 6.44 has the same bug

     
    • Ognyan Chernokozhev

      Hi,

      I found the problem that prevented C++ Builder CLang compiler from building OWLNext:
      By default, in the CB global configuration, in include paths there was the variable $(CG_64_BOOST_ROOT), but it was not defined in the Environment options. Only CG_BOOST_ROOT is set. Replacing $(CG_64_BOOST_ROOT) with $(CG_BOOST_ROOT) in the CB global configuration solves the issue and allows me to build the CLang OWLNext libraries with OWLMaker.
      Then you won't need the change of the checks with __clang__

      As for CodeGuard, it is only for the old C++ compiler and is not really supported anymore, as a matter of fact the latest C++ Builder installs may not contain the needed dlls...

      Jogy

       
  • pc

    pc - 2018-04-19

    Post Scriptum:

    During compilation I managed to hang the C++ Lang compiler (or make ???) twice and I managed to reproduce the bug :

    I compile on Win10 : to reproduce the bug, just clic on the window elevator during the compilation (the console window that compiles)

     

    Last edit: pc 2018-04-19
  • pc

    pc - 2018-04-24

    Is it still serious, Borland ? (embarcadero)
    I've tested the free command line compiler BC101 and the IDE : both provide bcc32c that works differently : there are options undocumented and that work with one and not to the other. With the same command line to compile an "hello world" one provide a COFF format and the other an OMF format :(
    And I don't talk about the documentation that is incomplete and ununderstandable : just an example : the -o option says object file path, but for output by the compiler or input to the linker chain ? one does have to try all option to understand ? What a shame ?

     
  • Vidar Hasfjord

    Vidar Hasfjord - 2018-04-24

    Is it still serious, Borland ?

    I feel your pain. As a soother: Explicit support for the C++Builder 10.2 Tokyo Starter Edition has now been added to OWLMaker (soon to be released), with a workaround for the BCC32C and Boost issue [bugs:#405]. See [feature-requests:#131]. With that I think OWLNext users can forget about the Free Embarcadero C++ Compiler and use the free C++Builder Starter Edition instead.

     

    Related

    Bugs: #405
    Feature Requests: #131

Anonymous
Anonymous

Add attachments
Cancel