|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
31.05.2012, 14:45 | #1 |
Регистрация: 31.05.2012
Сообщений: 6
|
Qt, глобальные переменные и OpenMP
Уважаемые коллеги! Помогите со следующим вопросом....
Долго и упорно переписывал большой проект с Delphi на С++ (использую QT, пока с компилятором MSVC++ под 64 бита), переписал, отладил... Пришло время распараллеливания... Решил использовать OpenMP, чтобы сильно не "курочить" программу - в ней десятки программных модулей, сотни глобальных переменных - писали разные люди (математики), собирали код лет 15... И вот столкнулся со следующим - при распараллеливании самого "напряжённого" участка потребовалось некоторые глобальные переменные сделать как threadprivate, они через кучу ссылок (через разные модули), в h-нике объявлены как extern. Не заработало - начались гонки данных. Так вот - в доках нарыл, что директиву threadprivate необходимо применять в каждом юните, где используются оные глобальные перменные, и получается, что компилятор ругается, если эта директива применяется в тех юнитах, в которых подключен h-ник, в котором объявлены (extern-ном) эти глобальные переменные. Как быть?... Может, кто сталкивался с таким?... Сразу скажу, что GCC подобный баг был исправлен в 2005 г., а вот MSVC.... ((( |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Глобальные переменные | tae1980 | Microsoft Office Excel | 16 | 20.11.2013 08:41 |
Глобальные переменные | kilogram | PHP | 2 | 30.03.2012 09:19 |
Глобальные переменные | WiseElrond | C++ Builder | 3 | 31.10.2011 20:45 |
Глобальные переменные | Дмитрий999 | Visual C++ | 1 | 13.02.2011 22:30 |