Ошибка компоновщика C++. Vcl.Buttons.hpp(44): кандидат, найденный при поиске по имени, — «Vcl».C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка компоновщика C++. Vcl.Buttons.hpp(44): кандидат, найденный при поиске по имени, — «Vcl».

Сообщение Anonymous »

Когда я создаю простой проект в C++ Builder и добавляю компонент From из моего пакета — EhLib, я получаю следующую ошибку компиляции.
[bcc32c Error] Vcl.Buttons.hpp(66): reference to 'Vcl' is ambiguous
Vcl.Buttons.hpp(44): candidate found by name lookup is 'Vcl'
EhLib.VCL.hpp(48): candidate found by name lookup is 'Ehlib::Vcl'

Не могу понять причину ошибки.
При создании аналогичного проекта в Delphi ошибок не возникает.
Я использую Embarcadero® RAD Studio 12 версии 29.0.53982.0329
Я пока не могу создать минимальный проект для воспроизведения ошибки, поскольку пакет EhLib содержит довольно много файлов и код.
Я нашел следующий оператор using namespace в файле EhLib.VCL.Hpp. Но я не могу его удалить, поскольку этот файл автоматически создается системой на основе файла pas. .
Файл EhLib.VCL.hpp
...
extern DELPHI_PACKAGE System::Types::TPoint __fastcall SafeGetMouseCursorPos(void);
extern DELPHI_PACKAGE System::UnicodeString __fastcall GetEhLibGUISysInfoAsString(void);
extern DELPHI_PACKAGE System::UnicodeString __fastcall GetEhLibFullSysInfoAsString(void);
} /* namespace Vcl */
} /* namespace Ehlib */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_EHLIB_VCL)
using namespace Ehlib::Vcl;
#endif
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_EHLIB)
using namespace Ehlib;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.

Я вообще не использую пространство имен в своем коде. Все операторы использования пространства имен находятся в автоматически создаваемых файлах hpp, которые не рекомендуется изменять.
Я не могу добавить весь исходный файл, поскольку stackoverflow ограничивает текст 30 000 символов, поэтому я Я добавляю только те части, которые кажутся важными.
Файл Unit1.cpp. Файл, который я могу редактировать.
//---------------------------------------------------------------------------

#include
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "MemTableDataEh"
#pragma link "MemTableEh"
#pragma link "DBAxisGridsEh"
#pragma link "DBGridEh"
#pragma link "DBGridEhGrouping"
#pragma link "DBGridEhToolCtrls"
#pragma link "DynVarsEh"
#pragma link "EhLib.VCL"
#pragma link "GridsEh"
#pragma link "ToolCtrlsEh"
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//
}
//---------------------------------------------------------------------------

Файл Vcl.Buttons.hpp. Я не могу редактировать этот файл. Это часть базовой библиотеки VCL.
// CodeGear C++Builder
// Copyright (c) 1995, 2024 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'Vcl.Buttons.pas' rev: 36.00 (Windows)

#ifndef Vcl_ButtonsHPP
#define Vcl_ButtonsHPP

#pragma delphiheader begin
#pragma option push
#if defined(__BORLANDC__) && !defined(__clang__)
#pragma option -w- // All warnings off
#pragma option -Vx // Zero-length empty class member
#endif
#pragma pack(push,8)
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

//-- user supplied -----------------------------------------------------------
#ifndef _WIN64
#pragma link "dwmapi.lib"
#endif //_WIN64

...

};

//-- var, const, procedure ---------------------------------------------------
extern DELPHI_PACKAGE void __fastcall (*FNavigatorEnableChanged)(TBaseNavigator* Self);
extern DELPHI_PACKAGE Winapi::Windows::TRect __fastcall DrawButtonFace(Vcl::Graphics::TCanvas* Canvas, const Winapi::Windows::TRect &Client, int BevelWidth, TButtonStyle Style, bool IsRounded, bool IsDown, bool IsFocused);
} /* namespace Buttons */
} /* namespace Vcl */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_VCL_BUTTONS)
using namespace Vcl::Buttons;
#endif
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_VCL)
using namespace Vcl;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif // Vcl_ButtonsHPP

Файл EhLib.VCL.hpp. Я не могу редактировать этот файл. Он генерируется автоматически.
// CodeGear C++Builder
// Copyright (c) 1995, 2024 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'EhLib.VCL.pas' rev: 36.00 (Windows)

#ifndef EhLib_VCLHPP
#define EhLib_VCLHPP

#pragma delphiheader begin
#pragma option push
#if defined(__BORLANDC__) && !defined(__clang__)
#pragma option -w- // All warnings off
#pragma option -Vx // Zero-length empty class member
#endif
#pragma pack(push,8)
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

//-- user supplied -----------------------------------------------------------

namespace Ehlib
{
namespace Vcl
{
//-- forward type declarations -----------------------------------------------
class DELPHICLASS TWinControlEh;
class DELPHICLASS TCustomControlEh;
struct TDrawTextOptionsEh;
class DELPHICLASS TFilerAccess;
class DELPHICLASS TMemoryStreamEh;
//-- type declarations -------------------------------------------------------
typedef Data::Db::TBookmark TUniBookmarkEh;

...

extern DELPHI_PACKAGE System::Variant __fastcall RefObjectToVariant(System::TObject* ARefObject);
extern DELPHI_PACKAGE System::TObject* __fastcall VariantToRefObject(const System::Variant &VarValue);
extern DELPHI_PACKAGE System::Types::TPoint __fastcall SafeGetMouseCursorPos(void);
extern DELPHI_PACKAGE System::UnicodeString __fastcall GetEhLibGUISysInfoAsString(void);
extern DELPHI_PACKAGE System::UnicodeString __fastcall GetEhLibFullSysInfoAsString(void);
} /* namespace Vcl */
} /* namespace Ehlib */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_EHLIB_VCL)
using namespace Ehlib::Vcl;
#endif
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_EHLIB)
using namespace Ehlib;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif // EhLib_VCLHPP


Подробнее здесь: https://stackoverflow.com/questions/793 ... kup-is-vcl
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ошибка компоновщика C++. Vcl.Buttons.hpp(44): кандидат, найденный при поиске по имени, — «Vcl».
    Anonymous » » в форуме C++
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Ошибка компоновщика при включении нескольких файлов hpp и cpp
    Anonymous » » в форуме C++
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Android Studio зависает при навигации/поиске использования/поиске файлов Java
    Anonymous » » в форуме Android
    0 Ответы
    144 Просмотры
    Последнее сообщение Anonymous
  • Итерация по QButtonGroup::buttons приводит к сбою
    Гость » » в форуме C++
    0 Ответы
    18 Просмотры
    Последнее сообщение Гость
  • Группа реагирования-native-radio-buttons с меткой под (и по центру) переключателя
    Anonymous » » в форуме Html
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»