從XE6升上XE7的專案,使用IOS8.1 SDK遇到以下Compile的問題:
cannot link directly with C:\Users\Tony\Documents\Embarcadero\Studio\SDKs\iPhoneOS8.1.sdk/usr/lib/system/libdispatch.dylib. Link against the umbrella framework 'System.framework' instead.ld: cannot link directly with C:\Users\Tony\Documents\Embarcadero\Studio\SDKs\iPhoneOS8.1.sdk/usr/lib/system/libdispatch.dylib. Link against the umbrella framework 'System.framework' instead. for architecture armv7
解決方法:
1. copy以下檔案到專案目錄下
C:\Program Files (x86)\Embarcadero\Studio\15.0\source\rtl\osx\Macapi.Dispatch.pas
2. 修改專案目錄的Macapi.Dispatch.pas檔案內容:
原始:
const
libdispatch = '/usr/lib/system/libdispatch.dylib';
DISPATCH_QUEUE_SERIAL = nil;
改為:
const
// libdispatch = '/usr/lib/system/libdispatch.dylib';
libdispatch = '/usr/lib/libSystem.dylib';
DISPATCH_QUEUE_SERIAL = nil;
3. 重新compile即可解決此問題