Author Topic: CoreGraphics not found  (Read 1327 times)

jackjack

  • Noob
  • *
  • Posts: 20
  • Reputation: 3
  • iDevices: iPhone 4 iOS5
CoreGraphics not found
« on: March 02, 2012, 06:27:06 pm »
Hi,
I'm trying to take a screenshot but when compilling I get
Quote
ld: framework not found CoreGraphics
I tried with the iPhoneOS.sdk CoreGraphics headers and even with the iPhoneSimulator.sdk CoreGraphics headers as it was suggested somewhere, but nothing helped
Thanks for any help

My code (compiled with gcc test.c -o test -ObjC -framework CoreGraphics -framework UIKit -framework QuartzCore):
Code: [Select]
#include <CoreGraphics/CoreGraphics.h>
#include <UIKit/UIKit.h>
#include <QuartzCore/QuartzCore.h>

#include <stdio.h>

#include <substrate.h>
#include <mach/mach.h>

int main(int argc, char ** argv)
{

UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
CGRect rect = [keyWindow bounds];
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
[keyWindow.layer renderInContext:context];   
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

}

C0deH4cker

  • Hero Member
  • *****
  • Posts: 2849
  • Reputation: 129
  • I am leaving iNinjas. Contact me via email.
  • Badges:
  • iDevices: iPhone 4S 16gb Black (5.1.1), iPad 2 32gb White (5.0.1), iPod Touch 2G 8gb (4.2.1)
Re: CoreGraphics not found
« Reply #1 on: March 02, 2012, 09:12:39 pm »
Its missing a framework. Not the headers, but the binary. ld is a linker, and its job is to link the object files with libraries to produce an executable. To fix the problem, do:

-F$(SDK)/System/Library/Frameworks -F$(SDK)/System/Library/PrivateFrameworks

SDK must be the path to your sdk.


Btw, are you compiling with xcode on a mac or on your device itself?

jackjack

  • Noob
  • *
  • Posts: 20
  • Reputation: 3
  • iDevices: iPhone 4 iOS5
Re: CoreGraphics not found
« Reply #2 on: March 03, 2012, 08:26:53 am »
I'm compiling on my device (iPhone 4 iOS5, gcc from insanelyi, iOS4.3 sdk)
When I add these folders I get tons of errors
Looks like the headers in /var/sdk/System/Library/Frameworks/CoreGraphics are bad but even if I replace them with those in /System/Library/Frameworks/CoreGraphics it doesn't work any better

Code: [Select]
In file included from /var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFURL.h:9,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGDataProvider.h:11,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGColorSpace.h:11,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGColor.h:11,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGContext.h:12,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGBitmapContext.h:9,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.h:11,
                 from ss.c:1:
/var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFData.h: In function 'CFDataFind':
/var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFData.h:70: error: expected declaration specifiers before '__AVAILABILITY_INTERNAL__IPHONE_4_0'
In file included from /var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFString.h:9,
                 from /var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFError.h:33,
                 from /var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFURL.h:10,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGDataProvider.h:11,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGColorSpace.h:11,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGColor.h:11,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGContext.h:12,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGBitmapContext.h:9,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.h:11,
                 from ss.c:1:
/var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFArray.h:73: error: storage class specified for parameter 'CFArrayRetainCallBack'
/var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFArray.h:74: error: storage class specified for parameter 'CFArrayReleaseCallBack'
...
...
« Last Edit: March 03, 2012, 08:39:42 am by jackjack »

C0deH4cker

  • Hero Member
  • *****
  • Posts: 2849
  • Reputation: 129
  • I am leaving iNinjas. Contact me via email.
  • Badges:
  • iDevices: iPhone 4S 16gb Black (5.1.1), iPad 2 32gb White (5.0.1), iPod Touch 2G 8gb (4.2.1)
Re: CoreGraphics not found
« Reply #3 on: March 03, 2012, 12:51:05 pm »
Do you have your Availability.h?

jackjack

  • Noob
  • *
  • Posts: 20
  • Reputation: 3
  • iDevices: iPhone 4 iOS5
Re: CoreGraphics not found
« Reply #4 on: March 03, 2012, 03:38:24 pm »
I have 3 Availability.h:

/private/var/sdk/System/Library/Frameworks/Availability.h
Code: [Select]
#ifndef __AVAILABILITY__
#define __AVAILABILITY__


#define __MAC_10_0      1000
#define __MAC_10_1      1010
#define __MAC_10_2      1020
#define __MAC_10_3      1030
#define __MAC_10_4      1040
#define __MAC_10_5      1050
#define __MAC_10_6      1060
#define __MAC_NA        9999   /* not available */

#define __IPHONE_2_0     20000 
#define __IPHONE_2_1     20100 
#define __IPHONE_2_2     20200 
#define __IPHONE_3_0     30000 
#define __IPHONE_NA      99999  /* not available */

#include <AvailabilityInternal.h>


#ifdef __IPHONE_OS_VERSION_MIN_REQUIRED
    #define __OSX_AVAILABLE_STARTING(_mac, _iphone) __AVAILABILITY_INTERNAL##_iphone
    #define __OSX_AVAILABLE_BUT_DEPRECATED(_macIntro, _macDep, _iphoneIntro, _iphoneDep) \
                                                    __AVAILABILITY_INTERNAL##_iphoneIntro##_DEP##_iphoneDep

#elif defined(__MAC_OS_X_VERSION_MIN_REQUIRED)
    #define __OSX_AVAILABLE_STARTING(_mac, _iphone) __AVAILABILITY_INTERNAL##_mac
    #define __OSX_AVAILABLE_BUT_DEPRECATED(_macIntro, _macDep, _iphoneIntro, _iphoneDep) \
                                                    __AVAILABILITY_INTERNAL##_macIntro##_DEP##_macDep

#else
    #define __OSX_AVAILABLE_STARTING(_mac, _iphone)
    #define __OSX_AVAILABLE_BUT_DEPRECATED(_macIntro, _macDep, _iphoneIntro, _iphoneDep)
#endif


#endif /* __AVAILABILITY__ */

/private/var/sdk/usr/include/Availability.h
Code: [Select]
#ifndef __AVAILABILITY__
#define __AVAILABILITY__


#define __MAC_10_0      1000
#define __MAC_10_1      1010
#define __MAC_10_2      1020
#define __MAC_10_3      1030
#define __MAC_10_4      1040
#define __MAC_10_5      1050
#define __MAC_10_6      1060
#define __MAC_10_7      1070
#define __MAC_NA        9999   /* not available */

#define __IPHONE_2_0     20000
#define __IPHONE_2_1     20100
#define __IPHONE_2_2     20200
#define __IPHONE_3_0     30000
#define __IPHONE_3_1     30100
#define __IPHONE_3_2     30200
#define __IPHONE_4_0     40000
#define __IPHONE_4_1     40100
#define __IPHONE_4_2     40200
#define __IPHONE_4_3     40300
#define __IPHONE_NA      99999  /* not available */

#include <AvailabilityInternal.h>


#ifdef __IPHONE_OS_VERSION_MIN_REQUIRED
    #define __OSX_AVAILABLE_STARTING(_mac, _iphone) __AVAILABILITY_INTERNAL##_iphone
    #define __OSX_AVAILABLE_BUT_DEPRECATED(_macIntro, _macDep, _iphoneIntro, _iphoneDep) \
                                                    __AVAILABILITY_INTERNAL##_iphoneIntro##_DEP##_iphoneDep

#elif defined(__MAC_OS_X_VERSION_MIN_REQUIRED)
    #define __OSX_AVAILABLE_STARTING(_mac, _iphone) __AVAILABILITY_INTERNAL##_mac
    #define __OSX_AVAILABLE_BUT_DEPRECATED(_macIntro, _macDep, _iphoneIntro, _iphoneDep) \
                                                    __AVAILABILITY_INTERNAL##_macIntro##_DEP##_macDep

#else
    #define __OSX_AVAILABLE_STARTING(_mac, _iphone)
    #define __OSX_AVAILABLE_BUT_DEPRECATED(_macIntro, _macDep, _iphoneIntro, _iphoneDep)
#endif


#endif /* __AVAILABILITY__ */

/private/var/stash/usr/include/Availability.h
Code: [Select]
#ifndef __AVAILABILITY__
#define __AVAILABILITY__


#define __MAC_10_0      1000
#define __MAC_10_1      1010
#define __MAC_10_2      1020
#define __MAC_10_3      1030
#define __MAC_10_4      1040
#define __MAC_10_5      1050
#define __MAC_10_6      1060
#define __MAC_NA        9999   /* not available */

#define __IPHONE_2_0     20000 
#define __IPHONE_NA      99999  /* not available */

#include <AvailabilityInternal.h>


#ifdef __IPHONE_OS_VERSION_MIN_REQUIRED
    #define __OSX_AVAILABLE_STARTING(_mac, _iphone) __AVAILABILITY_INTERNAL##_iphone
    #define __OSX_AVAILABLE_BUT_DEPRECATED(_macIntro, _macDep, _iphoneIntro, _iphoneDep) \
                                                    __AVAILABILITY_INTERNAL##_iphoneIntro##_DEP##_iphoneDep

#elif defined(__MAC_OS_X_VERSION_MIN_REQUIRED)
    #define __OSX_AVAILABLE_STARTING(_mac, _iphone) __AVAILABILITY_INTERNAL##_mac
    #define __OSX_AVAILABLE_BUT_DEPRECATED(_macIntro, _macDep, _iphoneIntro, _iphoneDep) \
                                                    __AVAILABILITY_INTERNAL##_macIntro##_DEP##_macDep
#endif


#endif // __AVAILABILITY__

Don't like seeing ads? Click here to register!

C0deH4cker

  • Hero Member
  • *****
  • Posts: 2849
  • Reputation: 129
  • I am leaving iNinjas. Contact me via email.
  • Badges:
  • iDevices: iPhone 4S 16gb Black (5.1.1), iPad 2 32gb White (5.0.1), iPod Touch 2G 8gb (4.2.1)
Re: CoreGraphics not found
« Reply #5 on: March 03, 2012, 07:17:56 pm »
AvailabilityInternal.h?

jackjack

  • Noob
  • *
  • Posts: 20
  • Reputation: 3
  • iDevices: iPhone 4 iOS5
Re: CoreGraphics not found
« Reply #6 on: March 03, 2012, 07:44:43 pm »
Here is /var/sdk/usr/include/AvailabilityInternal.h
There's another version in stash instead of sdk but it should be meaningless

http://pastebin.com/irpJseCV

C0deH4cker

  • Hero Member
  • *****
  • Posts: 2849
  • Reputation: 129
  • I am leaving iNinjas. Contact me via email.
  • Badges:
  • iDevices: iPhone 4S 16gb Black (5.1.1), iPad 2 32gb White (5.0.1), iPod Touch 2G 8gb (4.2.1)
Re: CoreGraphics not found
« Reply #7 on: March 03, 2012, 07:57:56 pm »
Tryadding this to your CFLAGS:
-D__AVAILABILITY_INTERNAL__IPHONE_4_0

jackjack

  • Noob
  • *
  • Posts: 20
  • Reputation: 3
  • iDevices: iPhone 4 iOS5
Re: CoreGraphics not found
« Reply #8 on: March 04, 2012, 07:15:14 am »
This changes a little bit
Have I to change the headers?

Code: [Select]
In file included from /var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFURL.h:9,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGDataProvider.h:11,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGColorSpace.h:11,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGColor.h:11,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGContext.h:12,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGBitmapContext.h:9,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.h:11,
                 from ss.c:1:
/var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFData.h: In function 'CFDataFind':
/var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFData.h:70: error: expected declaration specifiers before numeric constant
In file included from /var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFString.h:9,
                 from /var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFError.h:33,
                 from /var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFURL.h:10,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGDataProvider.h:11,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGColorSpace.h:11,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGColor.h:11,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGContext.h:12,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGBitmapContext.h:9,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.h:11,
                 from ss.c:1:
/var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFArray.h:73: error: storage class specified for parameter 'CFArrayRetainCallBack'
/var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFArray.h:74: error: storage class specified for parameter 'CFArrayReleaseCallBack'
/var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFArray.h:75: error: storage class specified for parameter 'CFArrayCopyDescriptionCallBack'
/var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFArray.h:76: error: storage class specified for parameter 'CFArrayEqualCallBack'
/var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFArray.h:79: error: expected specifier-qualifier-list before 'CFArrayRetainCallBack'
/var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFArray.h:83: error: storage class specified for parameter 'CFArrayCallBacks'
/var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFArray.h:91: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'kCFTypeArrayCallBacks'
/var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFArray.h:101: error: storage class specified for parameter 'CFArrayApplierFunction'
/var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFArray.h:107: error: storage class specified for parameter 'CFArrayRef'

C0deH4cker

  • Hero Member
  • *****
  • Posts: 2849
  • Reputation: 129
  • I am leaving iNinjas. Contact me via email.
  • Badges:
  • iDevices: iPhone 4S 16gb Black (5.1.1), iPad 2 32gb White (5.0.1), iPod Touch 2G 8gb (4.2.1)
Re: CoreGraphics not found
« Reply #9 on: March 04, 2012, 05:16:21 pm »
Hmmm, remove that from CFLAGS, go to the file that is causing the error, CFData.h, and after the function declaration, delete the __AVAILABILITY_INTERNAL__IPHONE_4_0.
Change from

<return_type> funcName(<argType> arg, ...) __AVAILABILITY_INTERNAL__IPHONE_4_0;

to

<return_type> funcName(<argType> arg, ...);

Don't like seeing ads? Click here to register!

jackjack

  • Noob
  • *
  • Posts: 20
  • Reputation: 3
  • iDevices: iPhone 4 iOS5
Re: CoreGraphics not found
« Reply #10 on: March 04, 2012, 05:59:06 pm »
I changed
Code: [Select]
CF_EXPORT
CFRange CFDataFind(CFDataRef theData, CFDataRef dataToFind, CFRange searchRange, CFDataSearchFlags compareOptions) CF_AVAILABLE(10_6, 4_0);

CF_EXTERN_C_END
to
Code: [Select]
CF_EXPORT
CFRange CFDataFind(CFDataRef theData, CFDataRef dataToFind, CFRange searchRange, CFDataSearchFlags compareOptions);

CF_EXTERN_C_END

Then I get:
Code: [Select]
# gcc ss.c -o ss -ObjC -framework CoreGraphics -F/var/sdk/System/Library/Frameworks -F/var/sdk/System/Library/PrivateFrameworks
In file included from /var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFString.h:13,
                 from /var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFError.h:33,
                 from /var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFURL.h:10,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGDataProvider.h:11,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGColorSpace.h:11,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGColor.h:11,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGContext.h:12,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGBitmapContext.h:9,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.h:11,
                 from ss.c:1:
/var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFLocale.h: In function 'CFLocaleCreateLocaleIdentifierFromWindowsLocaleCode':
/var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFLocale.h:83: error: expected declaration specifiers before '__AVAILABILITY_INTERNAL__IPHONE_4_0'
/var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFLocale.h:88: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__AVAILABILITY_INTERNAL__IPHONE_4_0'
[...]
[...]

So once again I deleted that 'CF_AVAILABLE(10_6, 4_0)' in CFLocale.h:83 and the error became:
Code: [Select]
# gcc ss.c -o ss -ObjC -framework CoreGraphics -F/var/sdk/System/Library/Frameworks -F/var/sdk/System/Library/PrivateFrameworks
In file included from /var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFString.h:13,
                 from /var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFError.h:33,
                 from /var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFURL.h:10,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGDataProvider.h:11,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGColorSpace.h:11,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGColor.h:11,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGContext.h:12,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGBitmapContext.h:9,
                 from /var/sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.h:11,
                 from ss.c:1:
/var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFLocale.h: In function 'CFLocaleGetWindowsLocaleCodeFromLocaleIdentifier':
/var/sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFLocale.h:88: error: expected declaration specifiers before '__AVAILABILITY_INTERNAL__IPHONE_4_0'
[...]
[...]
[...]

Will I have to delete all the occurences of 'CF_AVAILABLE(10_6, 4_0)' in all header files?