CONFIG += c++-17
…is in the .pro file. Otherwise the code would not compile with Qt 6.2.2


> Am 27.12.2021 um 23:45 schrieb Lorn Potter <lorn.pot...@gmail.com>:
> 
> Hi,
> Emscripten uses clang/LLVM and not gcc, if makes any difference to you.
> 
> Setting /etc/alternatives has no effect on emscripten as essentially we are 
> cross compiling.
> 
> Perhaps you might try adding
> CONFIG += c++17
> If you are using c++-17 ?
> 
> emcc -v
> 
> $> emcc -v
> emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 2.0.14
> clang version 13.0.0 
> (/opt/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project
>  5f3c99085d4c2ebf57fd0586b013b02e32a8e20b)
> Target: wasm32-unknown-emscripten
> Thread model: posix
> 
> 
>> On 27/12/2021 9:56 PM, Axel Spoerl wrote:
>> I can narrow down the issue as follows:
>> The problem at hand occurs on a compile server, compiling desktop 
>> executables for Qt 5.15.2 (with GCC-7), Qt 6.2.2 (with GCC-9). To make both 
>> configurations work, QMAKE_CXX=g++-7 / QMAKE_CXX=g++-9 arguments are added 
>> in the respective Qt Creator build steps (which is necessary for Qt 6.2.2 
>> even if g++-9 is specified as compiler in the kit itself).
>> Emscripten (intended as a 3rd compile target) has been installed according 
>> to https://doc.qt.io/qt-6/wasm.html <https://doc.qt.io/qt-6/wasm.html>  and 
>> https://emscripten.org/docs/getting_started/index.html 
>> <https://emscripten.org/docs/getting_started/index.html>
>> The emscripten installation is able to compile the latest openssl pulled 
>> from github.
>> No matter which GCC version is chosen in /etc/alternatives and no matter 
>> which emscripten version is activated (3.0.1 or 2.0.14):  
>> .../upstream/emscripten/cache/sysroot/include/c++ only contains the v1 
>> directory.
>> The server's /usr/include/c++ contains v1, 7 and 9 according to the GCC 
>> versions installed. This is where my emscripten knowledge ends and I can 
>> only experiment (e.g. by manually linking the 9 directory into the 
>> emscripten cache, which is being ignored).
>> Compiling basic C++ code with #include <cmath> works for GCC 7 and produces 
>> the errors mentioned earlier for GCC 9 (i.e. Qt 6.2.2).
>> Makefiles are generated by qmake out of a single .pro file. The .pro file 
>> contains a WASM specific section to link against its own libcrypto and 
>> libssl. Apart from the compilers used, all Makefiles look almost identical.
>> => It appears to me as if emscripten uses a default GCC version, which in 
>> case of GCC 9 being expected is the wrong one. This leads to the lib 
>> incompatibility as described by Thiago. I have not found options for em++, 
>> 'emsdk install' or 'emsdk activate', that provide a GCC selection. That may 
>> well be attributable to a lack of knowledge on my side.
>> > Well, Qt is a bit relevant if the qt-cmake of the Qt 6.2.2 WASM 
>> > installation
>> > results in broken make files.
>> >
>> > So the question is perhaps: Axel, assuming that you installed emscripten
>> > following the instruction and that you can verify that you can compile
>> > basic C++ code as Thiago suggested, how do you then generate your make
>> > files?
>> >
>> > Volker
>> >
>> _______________________________________________
>> Interest mailing list
>> Interest@qt-project.org
>> https://lists.qt-project.org/listinfo/interest
> 
> -- 
> Lorn Potter
> Freelance Qt Developer. Platform Maintainer Qt WebAssembly, Maintainer 
> QtSensors
> Author, Hands-on Mobile and Embedded Development with Qt 5
> 
> _______________________________________________
> Interest mailing list
> Interest@qt-project.org
> https://lists.qt-project.org/listinfo/interest
_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest

Reply via email to