Qt WebEngine compilation error
-
The fact that you are using the open source sources does not change my initial suggestion: you have a commercial license so you can request the Qt Company's help.
Do you have multiple versions of libstdc++ in your sysroot ?
On a side note, your thread title is misleading, you haven't even reached webengine yet in your build.
-
I have reached out to the Qt company for help. However, I have a standard license and hence it will take 1-2 days for their response. I have only one version of libstdc++ in the sysroots. I am getting the linker errors only when I added the "-webengine-printing-and-pdf" to the configure command. Without this, I was able to configure and compile Qt from source. Could you please help me what am I missing? I am doing this for the first time.
My configure command looks like this:
LDFLAGS="-L/home/user/ti-processor-sdk-linux-am335x-evm-09.01.00.001/linux-devkit/sysroots/armv7at2hf-neon-oe-linux-gnueabi/usr/lib -lstdc++" ~/tqtc-qt5/configure --verbose -platform linux-g++ -xplatform linux-arm-gnueabihf-g++ -device-option CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- -sysroot /home/user/ti-processor-sdk-linux-am335x-evm-09.01.00.001/linux-devkit/sysroots/armv7at2hf-neon-oe-linux-gnueabi -prefix /home/user/qt5-build -commercial -confirm-license -release -gui -widgets -no-dbus -opengl -linuxfb -sql-sqlite -nomake examples -nomake tests -webengine-printing-and-pdf -tslib
Below are the search results from the sysroots.
user@ip:~/ti-processor-sdk-linux-am335x-evm-09.01.00.001$ find . -name libstdc++.so* ./linux-devkit/sysroots/armv7at2hf-neon-oe-linux-gnueabi/usr/lib/libstdc++.so.6 ./linux-devkit/sysroots/armv7at2hf-neon-oe-linux-gnueabi/usr/lib/libstdc++.so.6.0.29 ./linux-devkit/sysroots/armv7at2hf-neon-oe-linux-gnueabi/usr/lib/libstdc++.so ./linux-devkit/sysroots/x86_64-arago-linux/usr/lib/libstdc++.so.6 ./linux-devkit/sysroots/x86_64-arago-linux/usr/lib/libstdc++.so.6.0.29 ./external-toolchain-dir/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/lib/libstdc++.so.6 ./external-toolchain-dir/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/lib/libstdc++.so.6.0.29-gdb.py ./external-toolchain-dir/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/lib/libstdc++.so.6.0.29 ./external-toolchain-dir/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/lib/libstdc++.so ./external-toolchain-dir/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/libc/usr/lib/libstdc++.so.6 ./external-toolchain-dir/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/libc/usr/lib/libstdc++.so.6.0.29-gdb.py ./external-toolchain-dir/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/libc/usr/lib/libstdc++.so.6.0.29 ./external-toolchain-dir/arm-gnu-toolchain-11.3.rel1-x86_64-arm-none-linux-gnueabihf/arm-none-linux-gnueabihf/libc/usr/lib/libstdc++.so
However, x86 has a different version of the libstdc++.so.
user@ip:/usr/lib$ !find find . -name libstdc++.so* ./i386-linux-gnu/libstdc++.so.6 ./i386-linux-gnu/libstdc++.so.6.0.30 ./gcc/x86_64-linux-gnu/11/32/libstdc++.so ./gcc/x86_64-linux-gnu/11/x32/libstdc++.so ./gcc/x86_64-linux-gnu/11/libstdc++.so ./x86_64-linux-gnu/libstdc++.so.6 ./x86_64-linux-gnu/libstdc++.so.6.0.30 ./gcc-cross/arm-linux-gnueabihf/11/libstdc++.so
-
Before diving deeper in that stuff, you wrote that you can build Qt without issue when webengine is disabled. What about building Qt like that and then manually you try to build WebEngine and PDF ?
-
Since Qt 6 uses cmake you can follow the same principle as other cmake projects.
Create a build folder and then use the
qt-cmake
wrapper that was generated as part of your build to configure then build the projects. -
Then use qmake. The rest is the same, create an out of source build folder, go into it, use the full path to your Qt cmake executable and pass it the path to the WebEngine folder.
-
I have a out of source build folder. I am currently trying to generate the qmake command to compile the application code. There is no Cmake as I am using Qt5. When i use the cmd
~/tqtc-qt5/configure --verbose -platform linux-g++ -xplatform linux-arm-gnueabihf-g++ -device-option CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- -sysroot /home/user/ti-processor-sdk-linux-am335x-evm-09.01.00.001/linux-devkit/sysroots/armv7at2hf-neon-oe-linux-gnueabi -prefix /home/user/qt5-build -commercial -confirm-license -release -gui -widgets -no-dbus -opengl -linuxfb -sql-sqlite -nomake examples -nomake tests -tslib
, there are no errors. However, when I use the command~/tqtc-qt5/configure --verbose -platform linux-g++ -xplatform linux-arm-gnueabihf-g++ -device-option CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- -sysroot /home/user/ti-processor-sdk-linux-am335x-evm-09.01.00.001/linux-devkit/sysroots/armv7at2hf-neon-oe-linux-gnueabi -prefix /home/user/qt5-build -commercial -confirm-license -release -gui -widgets -no-dbus -opengl -linuxfb -sql-sqlite -nomake examples -nomake tests -webengine-printing-and-pdf -tslib
, I am getting errors. The only difference in the commands is the parameter -webengine-printing-and-pdf. -
What I suggested:
- build Qt without the stuff that's breaking
- create another folder just for WebEngine
- from that folder call your freshly built qmake and point it to the source of the WebEngine module
- build