Уважаемые коллеги! Помогите со следующим вопросом....
Долго и упорно переписывал большой проект с Delphi на С++
(использую QT), переписал, отладил...
Пришло время распараллеливания... Решил использовать OpenMP,
чтобы сильно не «курочить» программу - в ней десятки программных модулей,
сотни глобальных переменных - писали разные люди (математики) собирали код
лет 15...
И вот столкнулся со следующим при распараллеливании замого «напряжённого» участка
потребовалось некоторые глобальные переменные сделать как threadprivate,
они через кучу ссылок (через разные модули), в h-нике объявлены как extern.
Так вот - в доках нарыл, что директиву threadprivate необходимо применять в каждом
юните, где используются оные глобальные перменные, и получается, что компилятор
ругается, если эта директива применяется в тех юнитах, в которых подключен h-ник, в котором объявлены (extern-ном) эти глобальные переменные.
Как быть?...