libde265 icon indicating copy to clipboard operation
libde265 copied to clipboard

error: 'system' is unavailable: not available on iOS

Open CaiJingLong opened this issue 1 year ago • 0 comments

I want to compile for iOS.

I run with next script to create MakeFile and make -j4

As far as I know, the system function was removed from the iOS SDK 11 (5 years ago), so libde265 has no hope of being compatible with the iOS platform?

log

rd-curves.cc:377:16: error: 'system' is unavailable: not available on iOS
  int retval = system(replace_variables(sstr.str()).c_str());
               ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk/usr/include/stdlib.h:190:6: note: 'system' has been explicitly marked
      unavailable here
int      system(const char *) __DARWIN_ALIAS_C(system);
         ^
rd-curves.cc:399ld: warning: ignoring file ../libde265/.libs/libde265.a, building for iOS-arm64 but attempting to link with file built for iOS-arm64
:16: error: 'system' is unavailable: not available on iOS
  int retval = system(replace_variables(sstr.str()).c_str());
               ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk/usr/include/stdlib.h:190:6: note: 'system' has been explicitly marked
      unavailable here
int      system(const char *) __DARWIN_ALIAS_C(system);
         ^
rd-curves.cc:557:16: error: 'system' is unavailable: not available on iOS
  int retval = system(cmd2.c_str());
               ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS13.2.sdk/usr/include/stdlib.h:190:6: note: 'system' has been explicitly marked
      unavailable here
int      system(const char *) __DARWIN_ALIAS_C(system);
         ^
rd-curves.cc:634:16: error: 'system' is unavailable: not available on iOS
  int retval = system(cmd2.c_str());
iconfigure

#!/bin/sh
set -e

usage () {
  echo "Usage: [VARIABLE...] $(basename $0) architecture"
  echo ""
  echo "  architecture   Target architecture. [armv7|armv7s|arm64|i386|x86_64]"
  echo ""
  echo "  VARIABLEs are:"
  echo "    SDKVERSION   Target a specific SDK version."
  echo "    PREFIX       Custom install prefix, useful for local installs."
  echo "    CHOST        Configure host, set if not deducable by ARCH."
  echo "    SDK          SDK target, set if not deducable by ARCH. [iphoneos|iphonesimulator]"
  echo ""
  echo "    CFLAGS CPPFLAGS CXXFLAGS LDFLAGS PKG_CONFIG_PATH"
  echo ""
  echo "  All additional parameters are passed to the configure script."
  exit 1
}

ScriptDir="$( cd "$( dirname "$0" )" && pwd )"

# Sanity checks
if [ "$#" -lt 1 ]; then
  echo "Please supply an architecture name."
  usage
fi

if [ ! -x "./configure" ] ; then
  echo "No configure script found."
  usage
fi

# Build architecture
export ARCH=$1

# Export supplied CHOST or deduce by ARCH
if [ ! -z "$CHOST" ]; then
  export CHOST
else
  case $ARCH in
    armv7 | armv7s )
      export CHOST=arm-apple-darwin*
      ;;
    arm64 )
      export CHOST=aarch64-apple-darwin*
      ;;
    i386 | x86_64 )
      export CHOST=$ARCH-apple-darwin*
      ;;
    * )
      usage
    ;;
  esac
fi

# Export supplied SDK or deduce by ARCH
if [ ! -z "$SDK" ]; then
  export SDK
else
  case $ARCH in
    armv7 | armv7s | arm64 )
      export SDK=iphoneos
      ;;
    i386 | x86_64 )
      export SDK=iphonesimulator
      ;;
    * )
      usage
    ;;
  esac
fi

# Export supplied SDKVERSION or use system default
if [ ! -z "$SDKVERSION" ]; then
  SDKNAME=$(basename $(xcrun --sdk $SDK --show-sdk-platform-path) .platform)
  export SDKVERSION
  export SDKROOT=$(xcrun --sdk $SDK --show-sdk-platform-path)"/Developer/SDKs/$SDKNAME.$SDKVERSION.sdk"
else
  export SDKVERSION=$(xcrun --sdk $SDK --show-sdk-version) # current version
  export SDKROOT=$(xcrun --sdk $SDK --show-sdk-path) # current version
fi

# Export supplied PREFIX or use default
if [ ! -z "$PREFIX" ]; then
  export PREFIX
else
  export PREFIX="$ScriptDir/$SDK-$SDKVERSION/$ARCH"
fi

# Binaries
export CC=$(xcrun --sdk $SDK --find clang)
export CPP=$(xcrun --sdk $SDK --find clang)" -E"
export CXX=$(xcrun --sdk $SDK --find clang++)
export LD=$(xcrun --sdk $SDK --find ld)

# Flags
export CFLAGS="$CFLAGS -arch $ARCH -isysroot $SDKROOT -I$PREFIX/include -miphoneos-version-min=$SDKVERSION"
export CPPFLAGS="$CPPFLAGS -arch $ARCH -isysroot $SDKROOT -I$PREFIX/include -miphoneos-version-min=$SDKVERSION"
export CXXFLAGS="$CXXFLAGS -arch $ARCH -isysroot $SDKROOT -I$PREFIX/include"
export LDFLAGS="$LDFLAGS -arch $ARCH -isysroot $SDKROOT -L$PREFIX/lib"
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH":"$SDKROOT/usr/lib/pkgconfig":"$PREFIX/lib/pkgconfig"

# Remove script parameters
shift 1

# Run configure
./configure \
	--prefix="$PREFIX" \
	--host="$CHOST" \
	--enable-static \
	--disable-shared \
	$@

My command:

./iconfigure arm64  --disable-dec265  --disable-sherlock265
make -j4

CaiJingLong avatar Mar 19 '23 02:03 CaiJingLong