-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
C++Builder error compiling - constant expression expected - TZDB requires at least Delphi XE to compile! #37
Comments
Hi @jaridmo -- it is outside my scope to deal with C++Builder. But if you provide a working patch I will gladly accept it. |
Another victim here of this. As @DieFinsternis mentioned, moving the |
Unless anyone else pitches in this won't get done. |
Hello @pavkam - as far as I recall, the fix is quite simply. Or is this unit automatically generated by some tool or something? I can certainly create a patch with this change, but maybe I am not getting the whole issue here? |
The description mentions commenting some lines out (those are needed for compatibility with Delphi versions) and I can't do that. Also I don't have a Delphi/C++ builder ATM so I can't make a fix that I would be able to test. If you can send me a patch that doesn't involve disabling those directives, (maybe another IFDEF required?) I will be glad to push it in. |
If I understand correctly, you just need to swap these two lines: |
I can compile correctly with C++Builder 12.2 with just this change: --- "a/.\\TZDB.pas"
+++ "b/.\\TZDB.fix.pas"
@@ -25,6 +25,8 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*)
+unit TZDB;
+
{$IFDEF FPC}
{$IFDEF VER3} // FPC 3.x
{$MODE DELPHI}
@@ -50,8 +52,6 @@
{$MESSAGE ERROR 'TZDB requires at least Delphi XE or FreePascal 3.0 to compile!'}
{$ENDIF}
-unit TZDB;
-
interface
uses
{$IFDEF DELPHI} |
I’d also strongly recommend always placing all {$DEFINE} directives and {$INCLUDE} statements after the unit name declaration in all units. This ensures better code organization, improves readability, and helps avoid potential compilation issues. |
dfb781e should fix it, if you can double check |
I was able to compile the |
I am using RadStudio 10.3.3 (C++ Builder) to compile TZDB.pas and use, but I get an error on the following:
40 {$IF DECLARED(CompilerVersion)}
41 {$IF CompilerVersion >= 22} // Delphi XE +
42 {$DEFINE TZDB_SUPPORTED_COMPILER}
43 {$DEFINE DELPHI}
44 {$IFEND}
45 {$ENDIF}
The errors:
[Pascal Error] TZDB.pas(41,32): E2026 Constant Expression expected
[Pascal Error] TZDB.pas(50,4): E1054 TZDB requires at least Delphi XE or FreePascal 3.0 to compile!
[Pascal Error] TZDB.pas(69,5): F2613 Unit 'FGL' not found.
I don't know if this is a problem in RadStudio 10.3.3 or if it is a problem with the C++ Builder side, but I can simply comment out the lines of code 40,41,44,45 and compile no problem. But I don't like doing this because whenever I update the source it will be a problem.
Any ideas?
The text was updated successfully, but these errors were encountered: