Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.12.2019, 23:29   #1
archerix
Форумчанин
 
Регистрация: 13.09.2019
Сообщений: 119
По умолчанию OpenMP + CodeBlocks error This file requires compiler and library support for the \

Пытаюсь освоить параллельное программирование, остановился пока на использовании openMP. Но не удается подружить ее с CodeBlocks. Подключил заголовочный файл, изваял простейшую программу.

Код:
#include <iostream>
#include <omp.h>

using namespace std;

int main()
{
  int i, sum;

#pragma omp parallel for
  for (i=0;i<10000000; i++) {

    sum+=i*i;
  }

cout << "Sum = " << sum << endl;

    return 0;
}
Но у меня такое очучение, что наличие "#pragma omp parallel for" компилятор тупо игнорирует. В интернетах чего-то не могу найти ответа. Может, надо еще какие-то настройки сделать?
archerix вне форума Ответить с цитированием
Старый 21.12.2019, 03:13   #2
archerix
Форумчанин
 
Регистрация: 13.09.2019
Сообщений: 119
По умолчанию

Весь моск сломал. В интернете советуют проделать и проверить такие моменты.

Вот это сделал.
Код:
1. Project properties -> Build options -> Other options -> добавить флаг "-fopenmp"
2. Linker settings -> "Add" -> "gomp"
Код:
Собранному приложению нужно находить следующие библиотеки:
libgomp-1.dll
pthreadGC2.dll
Лежат в CodeBlocks/MinGW/bin.

А нифига не работает
archerix вне форума Ответить с цитированием
Старый 21.12.2019, 11:43   #3
archerix
Форумчанин
 
Регистрация: 13.09.2019
Сообщений: 119
По умолчанию

#error This file requires compiler and library support for the \
ISO C++ 2011 standard. This support is currently experimental, and must be \
enabled with the -std=c++11 or -std=gnu++11 compiler options.
#endif
archerix вне форума Ответить с цитированием
Старый 21.12.2019, 12:21   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от archerix Посмотреть сообщение
Но не удается подружить ее с CodeBlocks
CodeBlocks вроде не компилятор а IDE.
А какой компилятор?
waleri вне форума Ответить с цитированием
Старый 21.12.2019, 12:29   #5
archerix
Форумчанин
 
Регистрация: 13.09.2019
Сообщений: 119
По умолчанию

Насколько я понимаю, компилятор MinGW, который поставился автоматически при установке CodeBlocks. Такое в нем нашел

TDM-GCC Compiler Suite for Windows
GCC 5 Series
MinGW 32-bit Edition


Попытался вручную подключить последнюю версию компилятора, теперь вообще ничего не работает

Последний раз редактировалось archerix; 21.12.2019 в 12:33.
archerix вне форума Ответить с цитированием
Старый 24.12.2019, 11:36   #6
archerix
Форумчанин
 
Регистрация: 13.09.2019
Сообщений: 119
По умолчанию

Специально ради этого поставил Visal Studio Express, включил в опциях проекта OpenMP, но оно и там не работает
archerix вне форума Ответить с цитированием
Старый 25.12.2019, 08:59   #7
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 947
По умолчанию

в студии+cl - в настройках проекта ставится галочка, вроде работает (professional edition)

в QtCreator+minGW в pro файл нужно добавить
Код:
QMAKE_CXXFLAGS += -fopenmp
QMAKE_LFLAGS +=  -fopenmp
про остальные IDE и компиляторы не в курррсе

визуально тестировать лучше с выводом ID потока, а то такой цикл со считалочкой моментально выполняется, там и не заметить ничего

Последний раз редактировалось Алексей1153; 26.12.2019 в 08:09.
Алексей1153 вне форума Ответить с цитированием
Старый 26.12.2019, 03:39   #8
archerix
Форумчанин
 
Регистрация: 13.09.2019
Сообщений: 119
По умолчанию

Все же пытаюсь как-то понять с CodeBlocks - тут привычно, попробовал Visual Studio, такое чувство, что там даже С++ какой-то не такой
archerix вне форума Ответить с цитированием
Старый 27.12.2019, 10:14   #9
archerix
Форумчанин
 
Регистрация: 13.09.2019
Сообщений: 119
По умолчанию

Вернулся к Visual Studio Express. Вот такая простейшая программка, галочка в настройках проекта включена.

Код:
#include "omp.h"
#include <iostream>
#include <conio.h>

int main()
{
#pragma omp parallel num_threads(5) 
	{
		std::cout << "Hello World!\n";
	}
	system("pause");
	return 0;
}
Все компилируется и запускается. Но выводится надпись только один раз, а по моим представлениям это должно происходить несколько раз. Вижуал студия по каким-то причинам тупо игнорирует эту прагму?


Правда, выдает какое-то предупреждение "Cannot find or open the PDB file."
archerix вне форума Ответить с цитированием
Старый 27.12.2019, 11:01   #10
archerix
Форумчанин
 
Регистрация: 13.09.2019
Сообщений: 119
По умолчанию

А с CodeBlocks заметил интересную вещь - вписал флаг "-fopenmp" в опции компилятора. А при компиляции в сообщениях такое:
Код:
mingw32-g++.exe -Wall -fexceptions -fopenmp -g -fopenmp -fopenmp  -c I:\CPlus\qwe1\main.cpp -o obj\Debug\main.o
Откуда три раза? Может, в этом все дело?
archerix вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommen jei_ Visual C++ 13 10.01.2015 15:51
run time error 438 object doesn't support KApSuL Microsoft Office Excel 9 30.12.2014 13:45
visual studio не видит заголовочный файл, хотя он есть (fatal error C1083: Cannot open include file: 'GL/glut.h': No such file or sersheg Помощь студентам 0 21.10.2013 13:04
исправить Ошибку Error error C1104: cannot open file Spirit987 Win Api 2 15.10.2013 09:09
Error 1 fatal error C1083: Cannot open include file: 'iostream.h': No such file or directory s20 Общие вопросы C/C++ 2 26.09.2009 23:28