我libui項目都必須在編譯和目標OS X 10.8和更新,所以我有升級到macOS Sierra/Xcode 8後,爲什麼MAC_OS_X_VERSION_MIN_REQUIRED和MAC_OS_X_VERSION_MAX_ALLOWED不再受到尊重?
#define MAC_OS_X_VERSION_MIN_REQUIRED MAC_OS_X_VERSION_10_8
#define MAC_OS_X_VERSION_MAX_ALLOWED MAC_OS_X_VERSION_10_8
中的可可代碼共享的頭文件。到目前爲止,這已經奏效;我沒有看到10.9之後棄用的函數。但是,升級到10.12和Xcode的8昨晚之後,我突然看到了一大堆廢棄警告,如
/Users/pietro/src/github.com/andlabs/libui/darwin/entry.m:181:28: warning:
'NSRegularControlSize' is deprecated: first deprecated in macOS 10.12
[-Wdeprecated-declarations]
uiDarwinSetControlFont(t, NSRegularControlSize);
^~~~~~~~~~~~~~~~~~~~
NSControlSizeRegular
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/AppKit.framework/Headers/NSCell.h:102:28: note:
'NSRegularControlSize' has been explicitly marked deprecated here
static const NSControlSize NSRegularControlSize API_DEPRECATED_WITH_REPL...
^
,如果我提供的宏被忽略。我試圖弄清楚發生了什麼,而我只是得到了混合信號:蘋果開發人員網站上的一些消息告訴我這真的是__MAC_OS_X_VERSION_MIN_REQUIRED(並且使用數字代替版本本身的數字),而其他人告訴我我對了。有些來源似乎暗示這些值是由編譯器設置決定的?我無法告訴Availability.h想要什麼。
這個項目使用CMake構建,不直接使用Xcode項目。
那麼我做錯了什麼?謝謝。
Are you include AvailabilityMacros.h? https://opensource.apple.com/source/xnu/xnu-3789.1.32/EXTERNAL_HEADERS/AvailabilityMacros.h.auto.html – Paurian
是不是自動附帶'<可可/ Cocoa.h>'? – andlabs
您的部署目標是否在構建設置中設置爲<10.12? – Wevah