Здравствуйте! Пытаюсь запустить стандартный пример из документации
QNX 6.5.0:
#include <iostream>
#include <Pt.h>
int main(int argc, char *argv[])
{
PdDirectContext_t *DirectMode = NULL;
PhDrawContext_t *Olddc = NULL;
PhRid_t rid_array[10];
DirectMode = PdCreateDirectContext();
if (DirectMode == NULL)
{
// error code
}
if(PdGetDevices(rid_array, 10) > 0)
{
PdSetTargetDevice((PhDrawContext_t *)DirectMode, rid_array[0]);
Olddc=PdDirectStart(DirectMode);
PgSetFillColor(Pg_PURPLE);
PgDrawIRect(0, 0, 300, 300, Pg_DRAW_FILL);
PgFlush(); // Draw the purple rect
PdDirectStop(DirectMode);
// When the driver leaves direct mode, an expose event
// is emitted, which will erase our rectangle, so we
// sleep for a bit so we can see that the rectangle
// was drawn.
sleep(5);
}
PdReleaseDirectContext(DirectMode);
PhDCSetCurrent(Olddc);
return(1);
}
К параметрам запуска добавлено
-lph. Приложение успешно собирается, но при попытке запуска на целевой машине QNX вылетает с ошибкой
Memory fault.
Валится на строчке
DirectMode = PdCreateDirectContext();, никак не хочет создавать контекст.
Debug моментикса останавливается на этой строке с ошибкой
SIGSEGV.
Не понимаю в чём дело...
Дополнительно: на целевую машину добавлялись библиотеки
Qt571 R827