Native env build fails

I created a completly new project and changed the platformio.ini file as follows:

[env:az-delivery-devkit-v4]

platform = espressif32

board = az-delivery-devkit-v4

framework = arduino

test_ignore = native_test

[env:native]

platform = native

test_framework = googletest

lib_deps = google/googletest@^1.12.1

lib_compat_mode = off

When I run pio run the az-delivery-devkit-v4 env builds successfully but the native env build fails with

PS C:\Users\micha\programming\platformio\try_googletest>  pio run -vvv -e native
Processing native (platform: native; test_framework: googletest; lib_deps: google/googletest@^1.12.1; lib_compat_mode: off)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ off
Found 1 compatible libraries
Scanning dependencies...
Dependency Graph
|-- googletest @ 1.12.1 (License: BSD-3-Clause, Path: C:\Users\micha\programming\platformio\try_googletest\.pio\libdeps\native\googletest)
Building in release mode
g++ -o .pio\build\native\src\machine.o -c -std=c++11 -DPLATFORMIO=60106 -Iinclude -Isrc -I.pio\libdeps\native\googletest -I.pio\libdeps\native\googletest\googlemock -I.pio\libdeps\native\googletest\googlemock\include -I.pio\libdeps\native\googletest\googletest -I.pio\libdeps\native\googletest\googletest\include src\machine.cpp
g++ -o .pio\build\native\src\main.o -c -std=c++11 -DPLATFORMIO=60106 -Iinclude -Isrc -I.pio\libdeps\native\googletest -I.pio\libdeps\native\googletest\googlemock -I.pio\libdeps\native\googletest\googlemock\include -I.pio\libdeps\native\googletest\googletest -I.pio\libdeps\native\googletest\googletest\include src\main.cpp
g++ -o .pio\build\native\libbfd\googletest\googlemock\src\gmock-cardinalities.o -c -std=c++11 -DPLATFORMIO=60106 -I.pio\libdeps\native\googletest -I.pio\libdeps\native\googletest\googlemock -I.pio\libdeps\native\googletest\googlemock\include -I.pio\libdeps\native\googletest\googletest -I.pio\libdeps\native\googletest\googletest\include .pio\libdeps\native\googletest\googlemock\src\gmock-cardinalities.cc
g++ -o .pio\build\native\libbfd\googletest\googlemock\src\gmock-internal-utils.o -c -std=c++11 -DPLATFORMIO=60106 -I.pio\libdeps\native\googletest -I.pio\libdeps\native\googletest\googlemock -I.pio\libdeps\native\googletest\googlemock\include -I.pio\libdeps\native\googletest\googletest -I.pio\libdeps\native\googletest\googletest\include .pio\libdeps\native\googletest\googlemock\src\gmock-internal-utils.cc
g++ -o .pio\build\native\libbfd\googletest\googlemock\src\gmock-matchers.o -c -std=c++11 -DPLATFORMIO=60106 -I.pio\libdeps\native\googletest -I.pio\libdeps\native\googletest\googlemock -I.pio\libdeps\native\googletest\googlemock\include -I.pio\libdeps\native\googletest\googletest -I.pio\libdeps\native\googletest\googletest\include .pio\libdeps\native\googletest\googlemock\src\gmock-matchers.cc
g++ -o .pio\build\native\libbfd\googletest\googlemock\src\gmock-spec-builders.o -c -std=c++11 -DPLATFORMIO=60106 -I.pio\libdeps\native\googletest -I.pio\libdeps\native\googletest\googlemock -I.pio\libdeps\native\googletest\googlemock\include -I.pio\libdeps\native\googletest\googletest -I.pio\libdeps\native\googletest\googletest\include .pio\libdeps\native\googletest\googlemock\src\gmock-spec-builders.cc
g++ -o .pio\build\native\libbfd\googletest\googlemock\src\gmock.o -c -std=c++11 -DPLATFORMIO=60106 -I.pio\libdeps\native\googletest -I.pio\libdeps\native\googletest\googlemock -I.pio\libdeps\native\googletest\googlemock\include -I.pio\libdeps\native\googletest\googletest -I.pio\libdeps\native\googletest\googletest\include .pio\libdeps\native\googletest\googlemock\src\gmock.cc
g++ -o .pio\build\native\libbfd\googletest\googletest\src\gtest-assertion-result.o -c -std=c++11 -DPLATFORMIO=60106 -I.pio\libdeps\native\googletest -I.pio\libdeps\native\googletest\googlemock -I.pio\libdeps\native\googletest\googlemock\include -I.pio\libdeps\native\googletest\googletest -I.pio\libdeps\native\googletest\googletest\include .pio\libdeps\native\googletest\googletest\src\gtest-assertion-result.cc
g++ -o .pio\build\native\libbfd\googletest\googletest\src\gtest-death-test.o -c -std=c++11 -DPLATFORMIO=60106 -I.pio\libdeps\native\googletest -I.pio\libdeps\native\googletest\googlemock -I.pio\libdeps\native\googletest\googlemock\include -I.pio\libdeps\native\googletest\googletest -I.pio\libdeps\native\googletest\googletest\include .pio\libdeps\native\googletest\googletest\src\gtest-death-test.cc
g++ -o .pio\build\native\libbfd\googletest\googletest\src\gtest-filepath.o -c -std=c++11 -DPLATFORMIO=60106 -I.pio\libdeps\native\googletest -I.pio\libdeps\native\googletest\googlemock -I.pio\libdeps\native\googletest\googlemock\include -I.pio\libdeps\native\googletest\googletest -I.pio\libdeps\native\googletest\googletest\include .pio\libdeps\native\googletest\googletest\src\gtest-filepath.cc
g++ -o .pio\build\native\libbfd\googletest\googletest\src\gtest-matchers.o -c -std=c++11 -DPLATFORMIO=60106 -I.pio\libdeps\native\googletest -I.pio\libdeps\native\googletest\googlemock -I.pio\libdeps\native\googletest\googlemock\include -I.pio\libdeps\native\googletest\googletest -I.pio\libdeps\native\googletest\googletest\include .pio\libdeps\native\googletest\googletest\src\gtest-matchers.cc
g++ -o .pio\build\native\libbfd\googletest\googletest\src\gtest-port.o -c -std=c++11 -DPLATFORMIO=60106 -I.pio\libdeps\native\googletest -I.pio\libdeps\native\googletest\googlemock -I.pio\libdeps\native\googletest\googlemock\include -I.pio\libdeps\native\googletest\googletest -I.pio\libdeps\native\googletest\googletest\include .pio\libdeps\native\googletest\googletest\src\gtest-port.cc
g++ -o .pio\build\native\libbfd\googletest\googletest\src\gtest-printers.o -c -std=c++11 -DPLATFORMIO=60106 -I.pio\libdeps\native\googletest -I.pio\libdeps\native\googletest\googlemock -I.pio\libdeps\native\googletest\googlemock\include -I.pio\libdeps\native\googletest\googletest -I.pio\libdeps\native\googletest\googletest\include .pio\libdeps\native\googletest\googletest\src\gtest-printers.cc
g++ -o .pio\build\native\libbfd\googletest\googletest\src\gtest-test-part.o -c -std=c++11 -DPLATFORMIO=60106 -I.pio\libdeps\native\googletest -I.pio\libdeps\native\googletest\googlemock -I.pio\libdeps\native\googletest\googlemock\include -I.pio\libdeps\native\googletest\googletest -I.pio\libdeps\native\googletest\googletest\include .pio\libdeps\native\googletest\googletest\src\gtest-test-part.cc
g++ -o .pio\build\native\libbfd\googletest\googletest\src\gtest-typed-test.o -c -std=c++11 -DPLATFORMIO=60106 -I.pio\libdeps\native\googletest -I.pio\libdeps\native\googletest\googlemock -I.pio\libdeps\native\googletest\googlemock\include -I.pio\libdeps\native\googletest\googletest -I.pio\libdeps\native\googletest\googletest\include .pio\libdeps\native\googletest\googletest\src\gtest-typed-test.cc
g++ -o .pio\build\native\libbfd\googletest\googletest\src\gtest.o -c -std=c++11 -DPLATFORMIO=60106 -I.pio\libdeps\native\googletest -I.pio\libdeps\native\googletest\googlemock -I.pio\libdeps\native\googletest\googlemock\include -I.pio\libdeps\native\googletest\googletest -I.pio\libdeps\native\googletest\googletest\include .pio\libdeps\native\googletest\googletest\src\gtest.cc
ar rc .pio\build\native\libbfd\libgoogletest.a .pio\build\native\libbfd\googletest\googlemock\src\gmock-cardinalities.o .pio\build\native\libbfd\googletest\googlemock\src\gmock-internal-utils.o .pio\build\native\libbfd\googletest\googlemock\src\gmock-matchers.o .pio\build\native\libbfd\googletest\googlemock\src\gmock-spec-builders.o .pio\build\native\libbfd\googletest\googlemock\src\gmock.o .pio\build\native\libbfd\googletest\googletest\src\gtest-assertion-result.o .pio\build\native\libbfd\googletest\googletest\src\gtest-death-test.o .pio\build\native\libbfd\googletest\googletest\src\gtest-filepath.o .pio\build\native\libbfd\googletest\googletest\src\gtest-matchers.o .pio\build\native\libbfd\googletest\googletest\src\gtest-port.o .pio\build\native\libbfd\googletest\googletest\src\gtest-printers.o .pio\build\native\libbfd\googletest\googletest\src\gtest-test-part.o .pio\build\native\libbfd\googletest\googletest\src\gtest-typed-test.o .pio\build\native\libbfd\googletest\googletest\src\gtest.o
ranlib .pio\build\native\libbfd\libgoogletest.a
g++ -o .pio\build\native\program.exe .pio\build\native\src\machine.o .pio\build\native\src\main.o -L.pio\build\native -Wl,--start-group .pio\build\native\libbfd\libgoogletest.a -Wl,--end-group
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../lib/libmingw32.a(lib64_libmingw32_a-crtexewin.o): in function `main':
C:/M/mingw-w64-crt-git/src/mingw-w64/mingw-w64-crt/crt/crtexewin.c:67: undefined reference to `WinMain'
collect2.exe: error: ld returned 1 exit status
*** [.pio\build\native\program.exe] Error 1
=============================================================================== [FAILED] Took 22.66 seconds ===============================================================================

Environment            Status    Duration
---------------------  --------  ------------
az-delivery-devkit-v4  IGNORED
native                 FAILED    00:00:22.659
========================================================================== 1 failed, 0 succeeded in 00:00:22.659 ==========================================================================

I used msys2 for the installation of gcc and added

C:\msys64\mingw64\bin
C:\msys64\usr\bin

to the PATH variable as described here: Native — PlatformIO latest documentation

My OS is Windows 10.

How can I resolve the issue?

Thanks!

That’s the toolchain’s way of saying "there is no main() function in your test code.

Because with the Arduino framework your code probably correctly implements setup() and main().

Checkout the official examples in regards to the technique used in unit testing.