Мне пришлось переставить Mac OS на диск, на котором уже был Qt 4.6.3. Потом я обновил Qt до 4.7. После всех этих процедур поломался вызов native API.
Вот пример из документации (Qt for Mac OS X - Specific Issues)
#ifdef Q_WS_MAC
#include <CoreFoundation/CFURL.h>
#include <CoreFoundation/CFBundle.h>
#endif
...
#ifdef Q_WS_MAC
CFURLRef appUrlRef = CFBundleCopyBundleURL(CFBundleGetMainBundle());
CFStringRef macPath = CFURLCopyFileSystemPath(appUrlRef,
kCFURLPOSIXPathStyle);
const char *pathPtr = CFStringGetCStringPtr(macPath,
CFStringGetSystemEncoding());
qDebug("Path = %s", pathPtr);
CFRelease(appUrlRef);
CFRelease(macPath);
#endif
Ошибка:
g++ -headerpad_max_install_names -o findfiles.app/Contents/MacOS/findfiles main.o window.o moc_window.o -F/Library/Frameworks -L/Library/Frameworks -framework QtGui -framework QtCore
Undefined symbols:
"_CFBundleGetMainBundle", referenced from:
Window::browse() in window.o
"_CFBundleCopyBundleURL", referenced from:
Window::browse() in window.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make: *** [findfiles.app/Contents/MacOS/findfiles] Error 1
make: Leaving directory `/Developer/Examples/Qt/dialogs/findfiles-build-desktop'
The process "/usr/bin/make" exited with code %2.
Error while building project findfiles (target: Desktop)
When executing build step 'Make'
Кто-нибудь сталкивался с таким?