Включить проверки и флаги OpenMP в autoconf и automake - PullRequest
1 голос
/ 27 января 2012

Я не могу за всю жизнь найти в интернете информацию об использовании openMP с автоинструментами!Я нахожу смутные ссылки на макросы, такие как AC_OPENMP и AX_OPENMP, ни один из которых не работает.AC_OPENMP вызывает «возможно неопределенную ошибку макроса».AX_OPENMP получает прошлый autoconf, но заставляет configure жаловаться, что AX_OPENMP не определен.Насколько я понимаю, эти макросы должны проверять openMP и устанавливать OPENMP_CFLAGS на соответствующее значение.

В моем файле Makefile.am я даже не могу заставить foo_CXXFLAGS (это проект C ++) работать правильно для OpenMP,Если я вручную установлю foo_CXXFLAGS = -fopenmp в Makefile.am, флаг -fopenmp будет добавлен ко всем командам компиляции, за исключением этапа (ссылка), который объединяет объектные файлы вместе, конечно, вызывая неопределенные ошибки ссылок.Это может быть моим недоразумением.настройка AM_CXXFLAGS = -fopenmp работает, но это не лучшая вещь.На самом деле ни одна из них не устанавливает foo_CXXFLAGS без проверки, но я не могу заставить ее работать.

Пожалуйста, кто-нибудь может мне помочь?Это кажется такой простой, обычной задачей, что в сети должно быть множество документации об этом.Чтобы прояснить некоторые вещи, да, код прекрасно компилируется, если я делаю это вручную, и работает без ошибок.Только на этой стадии автоконфискации все портится.Если бы вы указали мне документацию по использованию openMP с autoconf, вы бы стали моим новым лучшим другом.Спасибо.

Autoconf версия 2.59, automake версия 1.9.6

Ответы [ 2 ]

4 голосов
/ 27 января 2012

Что касается вашего первого вопроса, касающегося "возможно неопределенной ошибки макроса", AC_OPENMP был добавлен в autoconf в 2.62, поэтому вам нужно будет обновить его.Что касается второго вопроса, если вы хотите добавить флаг во время компоновки, вы должны указать его в AM_LDFLAGS

0 голосов
/ 24 августа 2017

Я знаю, что уже много лет, но этот ответ может помочь любому, у кого возникла такая же проблема.

Я пытался заставить работать libtiff и OpenMP вместе с Automake. Следующие строки помогли мне в src / Makefile.am (игнорируйте libtiff):

foo_CFLAGS += $(LIBTIFF_CFLAGS) -fopenmp
foo_LDFLAGS = -fopenmp
foo_LDADD   = $(LIBTIFF_LIBS)
...