ArcGIS Runtime sdk for QT 100.10 still build error libEsriCommonQt.so:

654
7
Jump to solution
04-30-2021 03:01 AM
EkkaratPrasongsap
New Contributor II

Hi,

I've using

  • Linux Mint 20.1
  • QT 5.15.2.
  • gcc 9.3.0

I created project from ArcGIS Runtime 100.11 Qt Widgets app template and build the project in QT Creator with the error I got  ".../arcgis/runtime_sdk/qt100.11/sdk/linux/x64/lib/libEsriCommonQt.so: undefined reference to `operator delete(void*, unsigned long)@Qt_5'" 

 What shoud I fix it from the error message?

 

Thank you.

Aek

Tags (3)
0 Kudos
1 Solution

Accepted Solutions
EkkaratPrasongsap
New Contributor II

Hi @JamesBallard1 

   I've come to update my issue. Now, I can build the ArcGIS Qt app on Qt 5.15.2. As I mentioned above I've less experienced in the Qt framework. I tried from Qt was bundled with Linux mint distro and also build it from Qt git source but it never works because libQt5Core.so missing Qt_5 operator void delete.

   So, I got the Qt 5.15.2 binary files from the Qt installer (I didn't know it exists before) and it works as your suggestions.

 

Thank you.

Aek

View solution in original post

7 Replies
JamesBallard1
Esri Contributor

Hi @EkkaratPrasongsap ,

We have other reports of this as well. From what we can tell, this happens when you obtain Qt from a Linux distribution rather than directly from the Qt Company.

There are more details here: https://community.esri.com/t5/arcgis-runtime-sdk-for-qt/undefined-reference-to-operator-delete-void-...

That thread also has a proposed workaround from @NorbertThoden that worked for him and another user.

We're not sure why one version libQt5Core.so.5 would implement this method and a different libQt5Core.so.5 would not.

operator delete(void*, unsigned long)@Qt_5

 

We build the ArcGIS Runtime SDK for Qt against a version of Qt we download directly from The Qt Company. If that is an option for you, that might be the path of least resistance.

0 Kudos
EkkaratPrasongsap
New Contributor II

Hi @JamesBallard1 

    Ok, It seem to be  many things to do after this. Thank you.

Aek

0 Kudos
EkkaratPrasongsap
New Contributor II

Hi @JamesBallard1 

    I alreade compile Qt5.15.2 from source and make sure all system Qt5's libs point to the new source but I still got the error message `operator delete(void*, unsigned long)@Qt_5'.

    I've also attach my system libraries and configuration as pictures below.

  • Qt Creator Error

Screenshot from 2021-05-04 12-17-39.png

  • Qmake version and point to the new source

Screenshot from 2021-05-04 12-18-23.png

  • ldd libEsriCommonQt.so

Screenshot from 2021-05-04 12-20-22.png

  • ldconfig

Screenshot from 2021-05-04 12-19-13.png

  • gcc version

Screenshot from 2021-05-04 12-22-08.png

  • openssl version

Screenshot from 2021-05-04 12-22-29.png

 

Regards,

Aek

0 Kudos
JamesBallard1
Esri Contributor

Hi @EkkaratPrasongsap ,

I reached out to Qt Support regarding this issue and got a reply. It turns out that the version of Qt that we build against defines this symbol (as you know), but different versions of Qt either provided by package managers or built locally with different compilers do not define this symbol (as you're seeing when you build it locally).

This puts us in a difficult situation since we are building against the "official" qt release binaries provided by The Qt Company, but developers like yourself aren't able to use our software.

My recommendation for now is to use the binaries provided directly from The Qt Company via their installer if you can. That should alleviate the problem for you. Short of that, you could include a source file that implements this symbol (annotated to resolve the error) in your code, but that is a last resort and I would not recommend it if you can avoid it.

 

0 Kudos
EkkaratPrasongsap
New Contributor II

@JamesBallard1 

   Thank you for understand my situation, I'm a newbie Qt developer and would like to expand my Esri technologies knowledge. I was experience in ArcGIS Runtime SDK for iOS and Android and now I woud like to explor in Qt world for the alternative building cross platform GIS applications. It just my interesting and cannot reach to binary Qt was build specific for my distro.

   During wait for the solution. I'll try different way for more investigate my Qt compiled.

Regards,

Aek

0 Kudos
EkkaratPrasongsap
New Contributor II

Hi @JamesBallard1 

   I've come to update my issue. Now, I can build the ArcGIS Qt app on Qt 5.15.2. As I mentioned above I've less experienced in the Qt framework. I tried from Qt was bundled with Linux mint distro and also build it from Qt git source but it never works because libQt5Core.so missing Qt_5 operator void delete.

   So, I got the Qt 5.15.2 binary files from the Qt installer (I didn't know it exists before) and it works as your suggestions.

 

Thank you.

Aek

View solution in original post

JamesBallard1
Esri Contributor

@EkkaratPrasongsap thank you for updating us with your progress. This is helpful information to know that using the Qt Framework provided by the Qt Company is a viable solution for you.