Russian Qt Forum

Компиляторы и платформы => Mac OS X => Тема начата: Igors от Октябрь 16, 2011, 18:09



Название: Lion находит посторонний "main"
Отправлено: Igors от Октябрь 16, 2011, 18:09
Добрый день

Несколько плагинов перестали работать на OSX 10.7. Смотрю, выясняется

- плагины подключаются через экспортируемую ф-цию "main" (ну на OSX POSIX просто ф-цию не делать hidden), причем разрешены 2 варианта имени, выглядит так (псевдокод)

Код
C++ (Qt)
theRoutine = reinterpret_cast <PlugEntry>  dlsym(mConnectionID, "main");
if (!theRoutine)
theRoutine = reinterpret_cast <PlugEntry>  dlsym(mConnectionID, "Main");
if (!theRoutine)
ShowError("not a valid plug-in");
 
Когда у плагина есть "main" - все гуд, она находится. Но вот когда "Main" - то все равно (первой) находится "main", посторонка которая к плагину никакого отношения не имеет (см скриншот)  и которая начинает молотить вот такую лабуду (что занимает до минуты)

Цитировать
PAProcess.m:-[PAProcess getTaskPort]:279: ERROR: Could not get task for PID [312]
... // здесь еще 300 таких же строк только с разным PID
PAProcess.m:-[PAProcess getTaskPort]:279: ERROR: Could not get task for PID [1]
TestApp [311] (32-bit)
Page Faults: 139687, Page Ins:  24593, COW Faults: 684 Ports:  135
Res: 139.57 MB   Dirty: 51.01 MB   Copied: 2360 KB   Swapped: 0 B
Wired: 0 B, KMEM: 0 B
Malloc data unavailable
User CPU Time: 5.389709 sec, System CPU Time: 1.464170 over 5 threads
А на Леоперде (10.6) все нормально, никаких посторонних "main" нет. Плагины старые, писаны 5 и более лет назад, файлы одни и те же на обоих ОС, исходники отсутствуют. Конечно я перебросил main/Main и с новым билдом все работает - но как мне залатать текущую версию на Lion?

Откуда Lion выдрал тот "main"?

Спасибо