Delphi w Embarcadero C++ Builder 13

Delphi w Embarcadero C++ Builder 13
CA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Próbuję w Delphi zbudować Komponent B który dziedziczy po komponencie A (dziedziczącym po klasie TComponent)
Komponenty A i B są osobnymi pakietami, w pakiecie B dodałem zależność "Requires" do pakietu A.
No i dostaję błąd:

Kopiuj
[ld.lld Error] ld.lld: error: undefined symbol: __init_record_Testcomponentbase 
        >>> referenced by .\\Win64x\\Release\\TestComponent.o:(.rdata)

Ktoś się orientuje o co może chodzić?

hzmzp
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 741
0

Prawdopodobnie pakiet A nie jest poprawnie kompilowany jako pakiet runtime (BPL), albo komponent B linkuje się statycznie do modułu, którego brakuje – efekt to błąd typu undefined symbol: _init_record… podczas linkowania w Win64. Błąd undefined symbol: __init_record_Testcomponentbase oznacza, że linker nie znalazł procedury inicjalizującej lub klasę TestComponentBase (najpewniej komponentu A) – czyli moduł, w którym ta procedura powinna się znajdować, nie został dołączony w formie BPL lub DCU. Bez wglądu w pliki projektu i konfiguracje kompilatora trudno będzie zgadywać gdzie dokładnie leży problem.

CA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Dołączam projekt zatem component.zip

hzmzp
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 741
0

Masz kolizje nazw zmień TTestComponentBase na np TTestComponentBase_ICO, zrób clean na projekcie i zbuduj wszystko po kolei od początku. Unikaj nazywania klas tak samo jak zasobów.

CA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Chodzi o nazwę bitmapy?
Usunąłem bitmapy i dalej bez zmian.

hzmzp
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 741
0

Skoro tak to znaczy że dalej coś mu się nie kompiluje/linkuje, teraz nie mam pod ręką buildera żeby sprawdzać :(

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.