我正在尝试将 GLScene 安装到 RAD Studio 2010中,目的是从主要是 C++ 项目中使用它。我下载了最新的快照(5991,2011 年 11 月),并一直在尝试编译和安装两个主要包: GLScene_DesignTime
和GLScene_RunTime
. 我什至没有尝试过其他一些库(CUDA 等),我只想让基本包运行。
我遇到了许多问题,其中一个我无法解决,我正在寻求任何成功安装 GLScene的 SO 上的人的帮助,或者可能知道如何解决这些 Delphi 编译器错误。
第一个问题(解决了?)
编译时,一些文件给出了以下错误:
[DCC Warning] GLSelection.pas(297): W1025 Unsupported language feature: 'abstract class method'
这是由方法声明引起的,例如:
TGLBaseSelectTechnique = class
public
class function IsSupported: Boolean; virtual; abstract;
Delphi 2010 似乎不支持虚拟抽象类方法,我已经通过删除 ' abstract
' 并提供一个虚拟实现来解决它,例如只返回false
.
第二个问题(未解决)——Delphi编译器致命错误
我现在遇到两个更严重的错误。编译时,编译器会失败,如下所示:
[DCC Fatal Error] Exception EAccessViolation: Access violation at address 05AE8ED9 in module 'dcc140.dll'. Read of address 00000003
[DCC Error] Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))
它没有说是什么文件导致了这个,但我认为它是由Spline.pas
. 偶尔而不是经常,我得到这个:
[DCC Fatal Error] Spline.pas(1): F2084 Internal Error: AV062D8ED9-R00000003-0
这表明Spline.pas
,并且我认为第一个错误也可能与文件有关,因为在获得第一个错误后,如果我再清理项目,清理将失败,说它无法删除Spline.hpp
。(我必须关闭并重新打开 IDE。)Spline.hpp
仅包含以下内容:
// CodeGear C++Builder
// Copyright (c) 1995, 2009 by Embarcadero Technologies, Inc.
// All rights reserved
// (DO NOT EDIT: machine generated header) 'Spline.pas' rev: 21.00
#ifndef SplineHPP
#define SplineHPP
#pragma delphiheader begin
#pragma option push
#pragma option -w- // All warnings off
#pragma option -Vx // Zero-length empty class member functions
#pragma pack(push,8)
#include <System.hpp> // Pascal unit
#include <Sysinit.hpp> // Pascal unit
它在那里停止。在我看来,尝试生成 HPP 文件时它失败了。
我总是遇到这两个失败之一。 第二个是我可以绑定到特定文件的唯一一个;第一个在项目进行到一半时失败了,但我看不到它失败时的位置。我正在从 IDE 内部编译。
我看过了Spline.pas
,它看起来很基本的代码 - 我根本看不到任何不寻常的东西。你可以在这里找到它,显然该文件已经七年没有被触及......所以我认为它应该编译:)
如果我更改项目设置使其不生成标头,则可以正常编译。(只生成 obj 文件,以及不包含“标题”的任何其他设置,都可以正常工作。)但这对我来说不是一个好的解决方法 - 毕竟,我需要从 C++ Builder 中使用它,所以我的正常设置是“生成所有 C++ Builder 文件”。至少,我需要 HPP 和 OBJ 文件。
这里有人在最新版本的 C++ Builder 中使用过 GLScene 吗?你遇到过类似的问题吗?知道如何解决这个问题吗?
我在用:
- RAD Studio 2010(完全修补和最新;安装了 DDevExtensions 和 IDEFixPack。)
- 2011 年 11 月快照;我也尝试了 2011 年 3 月的快照,但遇到了同样的问题。 链接到这里的快照。
- Delphi 2010 软件包仅通过更改链接器输出以生成 C++ Builder 文件进行修改;还有 BCB 6 包。两者都给出相同的错误。