The C++ Compiler cannot run a simple test program
-
@JonB
for the example that works I just copied what @cristian-adam told me to try outill try using "c++"
edit:
it also works -
@Daemonitas This means that the compiler is fine. Then I guess it's a CMake problem! 🤯
Qt delivers CMake 3.24.2 from Kitware, you can get a newer version from https://github.com/Kitware/CMake/tags
Unpack https://github.com/Kitware/CMake/releases/download/v3.26.3/cmake-3.26.3-windows-x86_64.zip somewhere on your disk, and use this new path for the
PATH
environment variable and try again from command line.Same thing with
cmake --version
to make sure you have the right version.🤞
-
@Daemonitas
Google for:detecting c++ compiler abi info failed
(your first error message). There are quite a few hits. For example https://stackoverflow.com/questions/64438728/detecting-compiler-abi-failed-by-cmake has:There is a CMake project simple enough but not compiling at all with Visual Studio Code.
Not same as you since you are MinGW, and that one is on Linux not Windows. But maybe there is a clue in the various hits?
What about https://stackoverflow.com/questions/48141492/cmake-with-mingw-on-windows-10-detecting-cxx-compiler-abi-info-failed, that's MinGW?
-
-
Rename the
build
directory tobuild-ninja
and then try with-G "MinGW Makefiles"
.How does it fail, similar with ABI checks?
This is bad enough to have it reported upstream at CMake https://gitlab.kitware.com/groups/cmake/-/issues
With the content of those error logs 😔
-
As an alternative, you could open a
cmd.exe
and this time trying it out with Visual C++.For this you need to to have Qt for MSVC installed at
c:\Qt\6.5.0\msvc2019_64
.Then:
set PATH=C:/Qt/Tools/CMake_64/bin;C:/Qt/6.5.0/msvc2019_64/bin;%PATH% $ cmake -S . -B build -DCMAKE_PREFIX_PATH=C:/Qt/6.5.0/msvc2019_64 $ cmake --build build --config Release
This time no
-G
was passed, CMake will pick up the Visual Studio generator usingmsbuild
.If this works, then you'll have to change the Generator in Qt Creator's Kits configuration for the Visual C++ kit.
Edit: new
cmd.exe
window, so that no MinGW bits are preset in thePATH
variable, CMake should pickcl.exe
as before when it complained about the missingQT
package. -
@cristian-adam
about the Visual Studio thing I also tried using the Qt extension in Visual Studio but when I tried to create a new Qt Widget Application it shows this
-
@Daemonitas Since I'm the maintainer of the CMake bits in Qt Creator I can't say much about the Visual Studio Qt plugin. A different colleague is responsible.
Since the Visual Studio experiment from a few posts passed the ABI check, it means that at least that generator works.
If you modify the generator to "Visual Studio" in the Qt 6.5.0 MSVC Kit like this:
You should be able to to finally compile your application.
-
@cristian-adam
Here is the result in the "General Messages" tab -
Since you have changed the generator in the Kit you would have to click in the Project settings on the "Re-configure with Initial Parameters" or just create a new project using this Kit.
The new project will get the right generator and should configure just fine 🙂
-
@cristian-adam
it somehow worked (?) in a way
it enables the build and run button but at the same time it can't build when i'm using the minGw kit but when I use the MSVC kit it shows a ton of errors
as shown hereEdit:
this is the output on the MinGW kit -
A MSVC Kit works with these generators:
- Ninja
- Visual Studio 17 2022
- NMake Makefiles
- NMake Makefiles - JOM
The MinGW Kit would work with these generators:
- Ninja
- MinGW Makefiles
You can't have a MinGW Kit working with a Visual Studio generator.
There is something broken on your PC. I'm running out of ideas.
-
@cristian-adam
for the msvc kit it seems the error to be in just one line
" <Exec Command="%(PreBuildEvent.Command)$(_BuildSuffix)" StdOutEncoding="%(PreBuildEvent.StdOutEncoding)" StdErrEncoding="%(PreBuildEvent.StdErrEncoding)" Condition="'%(PreBuildEvent.Command)' != ''"/>"If nothing works Ig I cant use Qt then
Edit:
i tried changing the generator to MinGW Makefiles in the MinGw kit and get this error -
You should check your global
PATH
environment variable.At https://github.com/isl-org/Open3D/issues/2316 it's being mentioned:
Error MSB3073 is generally caused by an incorrect path in the command line
You can type in Qt Creator in the Locator field (press
Ctrl+K
):! cmd /c set PATH
In the General Messages pane you should get the output. Maybe you can paste it here.
This could explain why so many command line tools are broken.
-
On this Arm64 Laptop I have something like:
Starting command "cmd /c set PATH". Path=C:\Projects\github\vcpkg;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\ProgramData\chocolatey\bin;C:\Program Files\Git\cmd;C:\Users\Cristian\AppData\Local\Programs\Python\Python311-arm64\Scripts\;C:\Users\Cristian\AppData\Local\Programs\Python\Python311-arm64\;C:\Users\Cristian\AppData\Local\Microsoft\WindowsApps;C:\Users\Cristian\AppData\Local\Microsoft\WinGet\Links;c:\Tools\cmake\bin;c:\Tools\ninja;c:\Tools\ccache;;C:\Users\Cristian\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\Cristian\AppData\Local\Microsoft\WinGet\Packages\Microsoft.Sysinternals.ProcessExplorer_Microsoft.Winget.Source_8wekyb3d8bbwe; PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC The command "cmd /c set PATH" finished successfully.
And for me all the things just work. Qt 6.5.0 with MSVC and MinGW.
-
@cristian-adam
Path=C:\Program Files\Common Files\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Cloudflare\Cloudflare WARP;C:\Program Files\dotnet;C:\Program Files\Java\jdk-19\bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Qt\Tools\QtCreator\bin;D:\MinGw\bin;C:\cmake-3.26.3-windows-x86_64\cmake-3.26.3-windows-x86_64\bin;C:\Users-redacted-\AppData\Local\Microsoft\WindowsApps;C:\Users-redacted-\Documents\MinGW\bin
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC -
@Daemonitas said in The C++ Compiler cannot run a simple test program:
@cristian-adam
Path=C:\Program Files\Common Files\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Cloudflare\Cloudflare WARP;C:\Program Files\dotnet;C:\Program Files\Java\jdk-19\bin;C:\Program Files\Common Files\Oracle\Java\javapath;C:\Qt\Tools\QtCreator\bin;D:\MinGw\bin;C:\cmake-3.26.3-windows-x86_64\cmake-3.26.3-windows-x86_64\bin;C:\Users-redacted-\AppData\Local\Microsoft\WindowsApps;C:\Users-redacted-\Documents\MinGW\bin
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSCI can't see anything that would break things 😔
How does the MSVC Kit with
NMake Makefiles JOM
generator work? -
@cristian-adam
the build button was disabled againoops I accidentally marked it as solved
-
-
-
QMake sometimes is simpler than CMake for simple applications.
-
@Daemonitas
I got this pop up now when compiling using the msvc kit