Author Topic: BASS & Delphi XE8, project for iOS  (Read 5360 times)

X-Vlad

  • Posts: 15
BASS & Delphi XE8, project for iOS
« on: 28 Apr '15 - 15:06 »
Hi,

I've using BASS library to create project in Delphi XE8 for iOS that will be play audio stream. But I've error during linking:
"
[DCC Error] E2597 Undefined symbols for architecture arm64:
   Error: "_kCFStreamPropertyFTPResourceSize", referenced from:      l016 in ..\lib\bass\libbass.a(libbass.a-arm64-master.o);
      Error: "_kCFHTTPVersion1_0", referenced from:      l016 in ..\lib\bass\libbass.a(libbass.a-arm64-master.o);
      Error: "_CFHTTPMessageCopySerializedMessage", referenced from:      l016 in ..\lib\bass\libbass.a(libbass.a-arm64-master.o);
      Error: "_kCFStreamSSLValidatesCertificateChain", referenced from:      l016 in ..\lib\bass\libbass.a(libbass.a-arm64-master.o);
      Error: "_kCFStreamPropertyFTPProxy", referenced from:      l016 in ..\lib\bass\libbass.a(libbass.a-arm64-master.o);
      Error: "_CFReadStreamCreateForHTTPRequest", referenced from:      l016 in ..\lib\bass\libbass.a(libbass.a-arm64-master.o);
      Error: "_kCFStreamPropertyHTTPResponseHeader", referenced from:      l016 in ..\lib\bass\libbass.a(libbass.a-arm64-master.o);
      Error: "_kCFStreamPropertySSLSettings", referenced from:      l016 in ..\lib\bass\libbass.a(libbass.a-arm64-master.o);
      Error: "_kCFStreamPropertyHTTPProxy", referenced from:      l016 in ..\lib\bass\libbass.a(libbass.a-arm64-master.o);
      Error: "_CFNetworkCopySystemProxySettings", referenced from:      l016 in ..\lib\bass\libbass.a(libbass.a-arm64-master.o);
      Error: "_kCFStreamPropertyFTPFileTransferOffset", referenced from:      l016 in ..\lib\bass\libbass.a(libbass.a-arm64-master.o);
      Error: "_kCFStreamPropertyFTPUsePassiveMode", referenced from:      l016 in ..\lib\bass\libbass.a(libbass.a-arm64-master.o);
      Error: "_kCFStreamPropertyFTPFetchResourceInfo", referenced from:      l016 in ..\lib\bass\libbass.a(libbass.a-arm64-master.o);
      Error: "_CFReadStreamCreateWithFTPURL", referenced from:      l016 in ..\lib\bass\libbass.a(libbass.a-arm64-master.o);
      Error: "_CFHTTPMessageAddAuthentication", referenced from:      l016 in ..\lib\bass\libbass.a(libbass.a-arm64-master.o);
      Error: "_kCFHTTPAuthenticationSchemeBasic", referenced from:      l016 in ..\lib\bass\libbass.a(libbass.a-arm64-master.o);
      Error: "_CFHTTPMessageAppendBytes", referenced from:      l016 in ..\lib\bass\libbass.a(libbass.a-arm64-master.o);
      Error: "_CFHTTPMessageSetHeaderFieldValue", referenced from:      l016 in ..\lib\bass\libbass.a(libbass.a-arm64-master.o);
      Error: "_CFHTTPMessageCreateRequest", referenced from:      l016 in ..\lib\bass\libbass.a(libbass.a-arm64-master.o);
      ld: symbol(s) not found for architecture arm64
"

Could somebody help me with this?

Ian @ un4seen

  • Administrator
  • Posts: 26262
Re: BASS & Delphi XE8, project for iOS
« Reply #1 on: 28 Apr '15 - 15:57 »
That looks like the CFNetwork framework isn't being included. Adding it to your project should fix things. You may also need to add the AudioToolbox/SystemConfiguration/Accelerate frameworks.

X-Vlad

  • Posts: 15
Re: BASS & Delphi XE8, project for iOS
« Reply #2 on: 28 Apr '15 - 16:12 »
I've added that frameworks. But it doesn't work.
Please look at attached screen shot

Ian @ un4seen

  • Administrator
  • Posts: 26262
Re: BASS & Delphi XE8, project for iOS
« Reply #3 on: 28 Apr '15 - 16:59 »
Does that image contain a list of available frameworks or actually used frameworks? I'm not a Delphi XE8 user myself, so I'm not familiar with how you would specify what frameworks to use with it. Also, do you only have the problem with the arm64 architecture, not the armv7 architecture?

X-Vlad

  • Posts: 15
Re: BASS & Delphi XE8, project for iOS
« Reply #4 on: 29 Apr '15 - 08:16 »
Have problem with both architectures.

X-Vlad

  • Posts: 15
Re: BASS & Delphi XE8, project for iOS
« Reply #5 on: 29 Apr '15 - 14:23 »
Fixed. CFNetwork doesn't include into build.

alexbirukov

  • Posts: 2
Re: BASS & Delphi XE8, project for iOS
« Reply #6 on: 2 Jun '15 - 13:58 »
Fixed. CFNetwork doesn't include into build.

How you fix this problem?

X-Vlad

  • Posts: 15
Re: BASS & Delphi XE8, project for iOS
« Reply #7 on: 2 Jun '15 - 14:16 »
created unit and added into project
Code: [Select]
unit iOSapi.CFNetwork;

interface

uses Macapi.ObjectiveC, iOSapi.CocoaTypes, iOSapi.Foundation;


// ===== External functions =====

const
  libCFNetwork = '/System/Library/Frameworks/CFNetwork.framework/CFNetwork';

implementation

{$IFDEF IOS}
{$IF Not defined(CPUARM)}

uses Posix.Dlfcn;

var
  iCFNetworkModule: THandle;
{$ENDIF}
{$IFDEF IOS}
{$IF defined(CPUARM)}
procedure LibCFNetworkFakeLoader; cdecl; external libCFNetwork;
{$ELSE}

initialization

iCFNetworkModule := dlopen( MarshaledAString( libCFNetwork ), RTLD_LAZY );

finalization

dlclose( iCFNetworkModule );
{$ENDIF}
{$ENDIF}
{$ENDIF}


end.

alexbirukov

  • Posts: 2
Re: BASS & Delphi XE8, project for iOS
« Reply #8 on: 2 Jun '15 - 17:45 »
created unit and added into project
Code: [Select]
unit iOSapi.CFNetwork;

interface

uses Macapi.ObjectiveC, iOSapi.CocoaTypes, iOSapi.Foundation;


// ===== External functions =====

const
  libCFNetwork = '/System/Library/Frameworks/CFNetwork.framework/CFNetwork';

implementation

{$IFDEF IOS}
{$IF Not defined(CPUARM)}

uses Posix.Dlfcn;

var
  iCFNetworkModule: THandle;
{$ENDIF}
{$IFDEF IOS}
{$IF defined(CPUARM)}
procedure LibCFNetworkFakeLoader; cdecl; external libCFNetwork;
{$ELSE}

initialization

iCFNetworkModule := dlopen( MarshaledAString( libCFNetwork ), RTLD_LAZY );

finalization

dlclose( iCFNetworkModule );
{$ENDIF}
{$ENDIF}
{$ENDIF}


end.

Thanks, all fine.

brethren70

  • Posts: 1
Re: BASS & Delphi XE8, project for iOS
« Reply #9 on: 16 Sep '15 - 13:30 »
Hi,

How to link "libbass.a" with Delphi XE8?
{$L libbass.a} failed. (bad object file)

Please, let me know how to link libbass.a  :D


Polywick Studio

  • Posts: 17
Re: BASS & Delphi XE8, project for iOS
« Reply #10 on: 16 Jan '16 - 02:07 »

Make sure you have the correct libbass.a version.