составление zthreads - PullRequest
       16

составление zthreads

0 голосов
/ 07 апреля 2009

Я скачал zthreads (найдено здесь: http://zthread.sourceforge.net/) и попытался скомпилировать, но я получаю эту ошибку от make:

MutexImpl.h:156: error: there are no arguments to 'ownerAcquired' that depend on a      template parameter, so a declaration of 'ownerAcquired' must be available

MutexImpl.h: 156: ошибка: (если вы используете '-fpermissive', G ++ примет ваш код, но разрешить использование необъявленного имени не рекомендуется)

, а затем после этого для каждой функции в этом исходном файле я получаю такую ​​ошибку:

MutexImpl.h:167: error: there are no arguments to 'function' that depend on a template parameter, so a declaration of 'function' must be available

Так что я предполагаю, что это ошибка make-файла, но я не уверен, как сказать make, чтобы заставить g ++ скомпилировать файлы с -fpermissive. Кто-нибудь знает, как поместить это в make-файл (если это проблема)?

Ответы [ 3 ]

3 голосов
/ 07 апреля 2009

CXXFLAGS + = -fpermissive

2 голосов
/ 07 апреля 2009

Стандартное соглашение gmake заключается в использовании переменной CXXFLAGS для передачи параметров компилятору C ++. Вы можете воспользоваться этим фактом, а также функцией, называемой «переопределением командной строки», чтобы привязать ваш дополнительный флаг к флагам, передаваемым в g ++, вызвав gmake следующим образом:

make CXXFLAGS+=-fpermissive

Я сам скачал исходный код, чтобы убедиться, что это работает, и обнаружил, что это работает, хотя до сих пор существует множество других предупреждений. Возможно, вы захотите зарегистрировать ошибку для этих проблем, если вы намерены продолжать использовать библиотеку.

Надеюсь, это поможет,

Эрик Мелски

1 голос
/ 15 февраля 2012

Я избавился от всех этих ошибок, изменив код: для каждой строки с этой ошибкой добавьте this-> в функцию, которая вызывает ошибку. В строке вы указываете:

ownerAcquired должен быть изменен этим-> ownerAcquired

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...