Details
-
Bug
-
Resolution: Done
-
P3: Somewhat important
-
None
-
6.0
Description
In qmake in features/uikit/qt.prf there are these 2 pieces of code
!bitcode { # By marking qt_registerPlatformPlugin as undefined, we ensure that # the plugin.o translation unit is considered for inclusion in # the final binary, which in turn ensures that the plugin's # static initializer is included and run. QMAKE_LFLAGS += -u _qt_registerPlatformPlugin } !no_main_wrapper { # The LC_MAIN load command available in iOS 6.0 and above allows dyld to # directly call the entrypoint instead of going through _start in crt.o. # Passing -e to the linker changes the entrypoint from _main to our custom # wrapper that calls UIApplicationMain and dispatches back to main() once # the application has started up and is ready to initialize QApplication. QMAKE_LFLAGS += -Wl,-e,_qt_main_wrapper }
These ensure that a built iOS application loads a different entry point than main (_qt_main_wrapper). Otherwise launching the application will crash.
We should investigate how we can achieve the same for a CMake-based iOS application.
One thing to consider is to either rename or hijack the Qt6::WinMain target.
Attachments
Issue Links
- relates to
-
QTBUG-87198 Configuring example targeting iOS with CMake + Xcode generator fails
- Closed
- replaces
-
QTBUG-64711 iOS: Building basic Qt application with CMake fails
- Closed