#qt4 #solaris #porting
#qt4 #solaris #перенос
Вопрос:
Пожалуйста, помогите, инструменты, которые я использую, — это kdevelop и qt4. На моем main.cpp есть ошибки, например;
Error: sys/procset.h: No such files or directory
Error: sys/priocntl.h: No such files or directory
Error: sys/tspriocntl.h: No such files or directory
Error: sys/rtpriocntl.h: No such files or directory
In function 'int main(int. char**)':
Error: 'pcparms_t' was not declared in this scope
Error: expected ';' before 'pcparms'
Error: 'rtparms_t' was not declared in this scope
Error: 'rtparmsp' was not declared in this scope
Error: 'pcinfo_t' was not declared in this scope
Error: expected ';' before 'pcinfo'
Error: 'rtinfo_t' was not declared in this scope
Error: 'rtinfop' was not declared in this scope
warning: unused variable 'lret'
warning: unused variable 'priority'
...
...
...
*Exited with Status:2 *
Я не могу найти эти заголовки в реальном времени в моем Centos 5 Linux. Кроме того, я не знаю эквивалентности этих заголовков для Linux. Я знаю, что мне нужно добавить инструкцию If для Solaris и Linux для заголовков include, и я не знаю, какие заголовки будут включены в инструкцию if / else.
Когда я удаляю заголовки, комментируя их заголовки реального времени и функцию для функции реального времени для solaris, я запускаю ее.
//pcparms_t pcparms;
//rtparms_t *rtparmsp;
//pcinfo_t pcinfo;
//rtinfo_t *rtinfop;
Моя проблема в том, каковы заголовки и функции в реальном времени для Linux или эквивалента Linux. Код моего приложения представляет собой смесь c и qt4. Что касается qt4, нужно ли им использовать функции реального времени? На c из Solaris нужны ли мне функции реального времени? Если да, то где я могу их найти или как они называются и где мне их разместить?
Комментарии:
1. Вы выполнили
locate procset.h
илиfind / | grep "procset.h"
, чтобы узнать, где находится этот файл?
Ответ №1:
На самом деле это не вопрос, связанный с QT, а скорее вопрос о переносе Solaris-> Linux.
sys/procset.h
sys/priocntl.h
sys/tspriocntl.h
sys/rtpriocntl.h
Все эти файлы являются системными вызовами, специфичными для Solaris. Они являются частью priocntlset — обобщенного управления планировщиком процессов.
Со страницы руководства
priocntlset(2) System Calls priocntlset(2)
NAME
priocntlset - generalized process scheduler control
SYNOPSIS
#include <sys/types.h>
#include <sys/procset.h>
#include <sys/priocntl.h>
#include <sys/rtpriocntl.h>
#include <sys/tspriocntl.h>
#include <sys/iapriocntl.h>
#include <sys/fsspriocntl.h>
#include <sys/fxpriocntl.h>
long priocntlset(procset_t *psp, int cmd, /* arg */ ...);
DESCRIPTION
The priocntlset() function changes the scheduling properties of running
processes. priocntlset() has the same functions as the priocntl() func-
tion, but a more general way of specifying the set of processes whose
scheduling properties are to be changed.
NOTES
Due to the lack of a priocntl() system call on Linux and FreeBSD...
Способ обработки процессов между Solaris и Linux отличается. Обе системы являются вариантами Unix, но конкретные системные вызовы, которые вы ищете, не имеют эквивалента Linux. В основном priocntlset используется для (повторного) планирования процессов. Я не в курсе последних версий ядра Linux или того, какие планировщики больше доступны, но в любой хорошей книге по ядру 2.6 (или 2.4) будет раздел о планировании с примерами.
Хорошим местом для начала на компьютере с Linux было бы man syscalls
.