Russian Qt Forum
Сентябрь 30, 2024, 10:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Решено] Проблемы с линковкой Qt 4.6/mac os 10.6  (Прочитано 3557 раз)
spectre71
Гость
« : Май 12, 2010, 20:52 »

Undefined symbols:
"_LSCopyApplicationForMIMEType", referenced from:
sbw::TDefTxtFileViewer::findViewer() in sbw_txt_file_show.o
"___CFConstantStringClassReference", referenced from:
cfstring=text/plain in sbw_txt_file_show.o
"_CFStringGetCString", referenced from:
sbw::TDefTxtFileViewer::findViewer() in sbw_txt_file_show.o
"_CFURLCopyFileSystemPath", referenced from:
sbw::TDefTxtFileViewer::findViewer() in sbw_txt_file_show.o

==============================================

Все методы в данном кусоке кода:
Код
C++ (Qt)
#include <CoreServices/CoreServices.h>
#include <ApplicationServices/ApplicationServices.h>
 
//....
//....
 
 
bool TDefTxtFileViewer::findViewer(void) {
 CFURLRef outAppURL;
 CFStringRef inMIMEType = CFSTR("text/plain");
 LSRolesMask inRoleMask = kLSRolesEditor;
 OSStatus errors = LSCopyApplicationForMIMEType(inMIMEType, inRoleMask, &outAppURL);
 if (errors)
 {
   inRoleMask = kLSRolesAll;
   errors = LSCopyApplicationForMIMEType(inMIMEType, inRoleMask, &outAppURL);
 }
 if (!errors)
 {
   char buffer[4096];
   CFStringRef s = CFURLCopyFileSystemPath(outAppURL, kCFURLPOSIXPathStyle);
   CFStringGetCString(s, buffer, 4096, 0);
   Viewer = QString(buffer);
 }
 return !Viewer.isEmpty();
}

С QT 4.5.2  такая проблема отсутствовала, все линковалось.
После смены версии QT, не линкуйтся данные методы.
Погуглил, ничего не нашел.
Возможно необходимо явное подключение либы в проекте. Какой, хбз?






« Последнее редактирование: Май 13, 2010, 14:56 от Spectre » Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Май 12, 2010, 23:31 »

LSCopyApplicationForMIMEType  -    ApplicationServices framework
CFURLCopyFileSystemPath - CoreFoundation framework
CFStringGetCString - CoreFoundation framework

Подключи явно данные фреймворки
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
spectre71
Гость
« Ответ #2 : Май 13, 2010, 09:48 »

Если я правильно понял нужно добавить в pro-файле:

Код:
macx {
LIBS += -framework ApplicationServices
LIBS += -framework CoreFoundation
}

К сожелению, не имею MAC под рукой для проверки.
Записан
spectre71
Гость
« Ответ #3 : Май 13, 2010, 14:56 »

Спасибо, pastor!
Все слинковалось.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #4 : Май 13, 2010, 21:57 »

по идее надо просто писать -framework Carbon
а вообще карбон как бы депрекейтед уже...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.207 секунд. Запросов: 22.