Clang64 runtime Ошибка чтения OKBitBtn.Kind: ресурс BBOK не найден - Clang32 все в порядке
RAD Studio 10.4.2 C++Builder, работающий на 64-битном ПК с Windows 10 Pro. Целевой VCL Win64 (то есть компилятор Clang64).
У меня есть большой проект на C++, который разрабатывается с использованием VCL Clang64. Я компилирую, используя статическое связывание всех библиотек RTL и всех установленных пакетов компонентов.
Раньше он компилировался и работал нормально. Я добавил кое-что новое, и теперь он компилируется и связывается, не сообщая об ошибках, но когда я запускаю его, я получаю окно с ошибкой, и приложение не запускается (даже не запускается). В окне ошибки написано.
Ошибка чтения OKBitBtn.Kind: ресурс BBOK не найден
Я использовал Notepad++ «найти в файлах» для поиска во всех каталогах файла, содержащего BBOK, но там написано «ничего не найдено».
Если я компилирую с включенной опцией проекта «Использовать пакеты времени выполнения», я получаю AV при попытке запустить EXE-файл.
Если я компилирую и связываю с использованием Clang32 (target = Win32) со статическим связыванием, он работает нормально - никаких признаков ошибок (но мне нужно 64-битное приложение для взаимодействия с моей базой данных PostgreSQL с помощью FireDAC, поэтому этот эксперимент не будет говорить в базу данных, как и ожидалось).
Я не понимаю, что может вызвать эту ошибку, и какие шаги по отладке я должен предпринять, чтобы отследить ее и решить.
1 ответ
(thanks to Remy for making edit improvements to my mquestion)Thanks to help from David Millington and Miguel Moreno (provided by skype conversation I now have the solution:
I have some of my own VCL components that are written in C++ (and work with the classic compiler). I had these de-selected in the "installed packages" list - but they were still listed (with empty check boxes). I know that RAD studio 10.4.2 (and earlier) does not work well with VCL components written in C++ and compiled with clang32 or clang64 compilers.
If I "remove" these components from the list then the problem is solved. At this point I have no idea why this happens.
Это немного неудобно, поскольку это означает, что переход от проектов, в которых используются компоненты с классическим компилятором (многие), к большому проекту, над которым я трачу много времени, не очень удобен. Однако это приемлемый обходной путь. Я надеюсь, что эта проблема будет исправлена в следующей версии RAD Studio 11.