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
Forum Updated to NodeBB v4.3 + New Features

OBJC compiler NOTFOUND when building Qt 6.2 for iOS from source

Scheduled Pinned Locked Moved Solved Installation and Deployment
3 Posts 1 Posters 311 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