Cannot build for linux in QtCreator - undefined reference
Describe the issue
I wanted to experiment with building in QtCreator under linux. All went fine until the linking stage, where there is an error with missing references.
Reproduction steps
Steps to reproduce the behavior:
- cloned QField repo (tried with both master and release-3_4 branches)
- issued scripts/builf-for-linux.sh (it went fine and has built the working executable)
- as described in the manual, created first the QtSetup in the qtCreator
- and then the kit on its basis
- imported the project into QtCreator and run build
- Then linking ended up with the error:
/usr/bin/ld: /home/maciek/p/QField2/QField/build-x64-linux/vcpkg_installed/x64-linux/lib/libQt6Positioning.so.6.6.3: undefined reference to symbol '_ZN3p2t3CDT11TriangulateEv' /usr/bin/ld: /home/maciek/p/QField2/QField/build-x64-linux/vcpkg_installed/x64-linux/lib/libpoly2tri.so: error adding symbols: DSO missing from command line
Expected behavior
It should produce the executable without this error.
QField (please complete the following information)
- Device: PC
- OS: Ubuntu 24.04
- QField version: release-3_4 and master
This sounds like the qt positioning cmake config is missing a dependency to poly2tri (likely somewhere in vcpkg_installed/x64-linux/share/Qt6Positioning).
Possibly this could be worked around (in QField) by patching this dependency in cmake/qgis-cmake-wrapper.cmake , we already do some "magic" and make QGIS::Core depend on poly2tri::poly2tri, I guess we could do the same for Qt::Positioning.
A proper fix would need to be implemented in https://github.com/microsoft/vcpkg/tree/master/ports/qtpositioning (or directly work upstream with qt to allow building with an external poly2tri library).
@maciek252 , have you found a way around this issue, and should we close this ticket?
The QField project highly values your report and would love to see it addressed. However, this issue has been left in feedback mode for the last 14 days and is being automatically marked as "stale". If you would like to continue with this issue, please provide any missing information or answer any open questions. If you could resolve the issue yourself meanwhile, please leave a note for future readers with the same problem and close the issue. In case you should have any uncertainty, please leave a comment and we will be happy to help you proceed with this issue. If there is no further activity on this issue, it will be closed in a week.