Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Installation and Deployment
  4. OBJC compiler NOTFOUND when building Qt 6.2 for iOS from source

OBJC compiler NOTFOUND when building Qt 6.2 for iOS from source

Scheduled Pinned Locked Moved Solved Installation and Deployment
3 Posts 1 Posters 332 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    Martin Burchell
    wrote on last edited by
    #1

    When building Qt 6.2 from source for iOS as follows:

    /Users/martin/workspace/qt6_local_build/src/qt6/configure -prefix /Users/martin/workspace/qt6_local_build/qt_ios_armv8_64_install -static -xplatform macx-ios-clang -I /Users/martin/workspace/qt6_local_build/openssl_ios_armv8_64_build/openssl-1.1.1s/include -L /Users/martin/workspace/qt6_local_build/openssl_ios_armv8_64_build/openssl-1.1.1s -ccache -no-sql -sqlite -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -qt-doubleconversion -qt-libjpeg -qt -libpng -qt-zlib -no-warnings-are-errors -nomake examples -nomake tests -release -openssl-linked -- -DQT_UIKIT_SDK=iphoneos -DQT_HOST_PATH=/Users/martin/workspace/qt6_local_build/qt_macos_x86_64_build/qtbase -DOPENSSL_USE_STATIC_LIBS=ON -DOPENSSL_ROOT_DIR=/Users/martin/workspace/qt6_local_build/openssl_ios_armv8_64_build/openssl-1.1.1s
    

    which results in:

    /Applications/CMake.app/Contents/bin/cmake' '-DQT_UIKIT_SDK=iphoneos' '-DQT_HOST_PATH=/Users/martin/workspace/qt6_local_build/qt_macos_x86_64_build/qtbase' '-DOPENSSL_USE_STATIC_LIBS=ON' '-DOPENSSL_ROOT_DIR=/Users/martin/workspace/qt6_local_build/openssl_ios_armv8_64_build/openssl-1.1.1s' '-DQT_USE_CCACHE=ON' '-DBUILD_SHARED_LIBS=OFF' '-DWARNINGS_ARE_ERRORS=OFF' '-DCMAKE_INSTALL_PREFIX=/Users/martin/workspace/qt6_local_build/qt_ios_armv8_64_install' '-DQT_QMAKE_TARGET_MKSPEC=macx-ios-clang' '-DCMAKE_CXX_COMPILER=clang++' '-DCMAKE_SYSTEM_NAME=iOS' '-DQT_BUILD_EXAMPLES=FALSE' '-DQT_BUILD_TESTS=FALSE' '-DCMAKE_BUILD_TYPE=Release' '-DQT_EXTRA_INCLUDEPATHS=/Users/martin/workspace/qt6_local_build/openssl_ios_armv8_64_build/openssl-1.1.1s/include' '-DQT_EXTRA_LIBDIRS=/Users/martin/workspace/qt6_local_build/openssl_ios_armv8_64_build/openssl-1.1.1s'  '-DINPUT_sql_sqlite=no' '-DINPUT_sql_db2=no' '-DINPUT_sql_ibase=no' '-DINPUT_sql_mysql=no' '-DINPUT_sql_oci=no' '-DINPUT_sql_odbc=no' '-DINPUT_sql_psql=no' '-DINPUT_doubleconversion=qt' '-DINPUT_libjpeg=qt' '-DINPUT_libpng=qt' '-DINPUT_system_zlib=no' '-DINPUT_openssl=linked' '-G' 'Ninja' '/Users/martin/workspace/qt6_local_build/src/qt6'
    

    I get the message:

    -- Looking for a OBJC compiler                                                                                            
    -- Looking for a OBJC compiler - NOTFOUND
    -- Looking for a OBJCXX compiler        
    -- Looking for a OBJCXX compiler - NOTFOUND
    

    and later on when trying to build, there are multiple failure with:

    error: Objective-C was disabled in PCH file but is currently enabled
    

    There seems to be a problem when the CMake macro check_language is called. If I modify the macro qt_enable_cmake_languages in qtbase/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake so that OBJC and OBJCXX are appended to __qt_required_language_list instead of __qt_optional_language_list, the build succeeds.

    Is there anything I should pass to configure to get this working without changing the code?

    CMake version is 3.25.
    XCode 13.2.1
    MacOS 11.7 Big Sur

    M 1 Reply Last reply
    0
    • M Martin Burchell

      When building Qt 6.2 from source for iOS as follows:

      /Users/martin/workspace/qt6_local_build/src/qt6/configure -prefix /Users/martin/workspace/qt6_local_build/qt_ios_armv8_64_install -static -xplatform macx-ios-clang -I /Users/martin/workspace/qt6_local_build/openssl_ios_armv8_64_build/openssl-1.1.1s/include -L /Users/martin/workspace/qt6_local_build/openssl_ios_armv8_64_build/openssl-1.1.1s -ccache -no-sql -sqlite -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-odbc -no-sql-psql -qt-doubleconversion -qt-libjpeg -qt -libpng -qt-zlib -no-warnings-are-errors -nomake examples -nomake tests -release -openssl-linked -- -DQT_UIKIT_SDK=iphoneos -DQT_HOST_PATH=/Users/martin/workspace/qt6_local_build/qt_macos_x86_64_build/qtbase -DOPENSSL_USE_STATIC_LIBS=ON -DOPENSSL_ROOT_DIR=/Users/martin/workspace/qt6_local_build/openssl_ios_armv8_64_build/openssl-1.1.1s
      

      which results in:

      /Applications/CMake.app/Contents/bin/cmake' '-DQT_UIKIT_SDK=iphoneos' '-DQT_HOST_PATH=/Users/martin/workspace/qt6_local_build/qt_macos_x86_64_build/qtbase' '-DOPENSSL_USE_STATIC_LIBS=ON' '-DOPENSSL_ROOT_DIR=/Users/martin/workspace/qt6_local_build/openssl_ios_armv8_64_build/openssl-1.1.1s' '-DQT_USE_CCACHE=ON' '-DBUILD_SHARED_LIBS=OFF' '-DWARNINGS_ARE_ERRORS=OFF' '-DCMAKE_INSTALL_PREFIX=/Users/martin/workspace/qt6_local_build/qt_ios_armv8_64_install' '-DQT_QMAKE_TARGET_MKSPEC=macx-ios-clang' '-DCMAKE_CXX_COMPILER=clang++' '-DCMAKE_SYSTEM_NAME=iOS' '-DQT_BUILD_EXAMPLES=FALSE' '-DQT_BUILD_TESTS=FALSE' '-DCMAKE_BUILD_TYPE=Release' '-DQT_EXTRA_INCLUDEPATHS=/Users/martin/workspace/qt6_local_build/openssl_ios_armv8_64_build/openssl-1.1.1s/include' '-DQT_EXTRA_LIBDIRS=/Users/martin/workspace/qt6_local_build/openssl_ios_armv8_64_build/openssl-1.1.1s'  '-DINPUT_sql_sqlite=no' '-DINPUT_sql_db2=no' '-DINPUT_sql_ibase=no' '-DINPUT_sql_mysql=no' '-DINPUT_sql_oci=no' '-DINPUT_sql_odbc=no' '-DINPUT_sql_psql=no' '-DINPUT_doubleconversion=qt' '-DINPUT_libjpeg=qt' '-DINPUT_libpng=qt' '-DINPUT_system_zlib=no' '-DINPUT_openssl=linked' '-G' 'Ninja' '/Users/martin/workspace/qt6_local_build/src/qt6'
      

      I get the message:

      -- Looking for a OBJC compiler                                                                                            
      -- Looking for a OBJC compiler - NOTFOUND
      -- Looking for a OBJCXX compiler        
      -- Looking for a OBJCXX compiler - NOTFOUND
      

      and later on when trying to build, there are multiple failure with:

      error: Objective-C was disabled in PCH file but is currently enabled
      

      There seems to be a problem when the CMake macro check_language is called. If I modify the macro qt_enable_cmake_languages in qtbase/cmake/QtBuildInternals/QtBuildInternalsConfig.cmake so that OBJC and OBJCXX are appended to __qt_required_language_list instead of __qt_optional_language_list, the build succeeds.

      Is there anything I should pass to configure to get this working without changing the code?

      CMake version is 3.25.
      XCode 13.2.1
      MacOS 11.7 Big Sur

      M Offline
      M Offline
      Martin Burchell
      wrote on last edited by
      #2

      I created a ticket https://bugreports.qt.io/browse/QTBUG-110249

      1 Reply Last reply
      0
      • M Offline
        M Offline
        Martin Burchell
        wrote on last edited by Martin Burchell
        #3

        The problem was that my build script was setting LD_FLAGS and CFLAGS to include:

        -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS15.2.sdk -miphoneos-version-min=7.0
        

        These were necessary to build OpenSSL and SQLCipher but were breaking the OBJC compiler check when configuring the Qt build.

        1 Reply Last reply
        0

        • Login

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • Users
        • Groups
        • Search
        • Get Qt Extensions
        • Unsolved