Пожалуйста, используйте компилятор, который поддерживает __attribute __ ((конструктор)) - PullRequest
1 голос
/ 27 января 2020

Я только что скомпилировал свою собственную версию gcc / 9.2.0, используя gcc / 4.8.2. После успешной компиляции и установки gcc / 9.2.0 я пытаюсь собрать ucx-1.5.1. Когда я пытаюсь запустить скрипт конфигурации ucx, я получаю следующее сообщение: "проверка атрибут ((конструктор)) ... configure: error: Невозможно продолжить. Пожалуйста, используйте компилятор, который поддерживает attribute ((конструктор))". Когда я запускаю скрипт, используя старый gcc / 4.8.2, я не получаю никакой ошибки.

Есть идеи, что пошло не так?

Ответы [ 2 ]

0 голосов
/ 12 февраля 2020

Ucx использует следующий код для определения поддержки атрибута __attribute__((constructor)). Вы можете проверить это самостоятельно:

gcc -x c - <<EOF 
static int rc = 1;
static void constructor_test() __attribute__((constructor));
static void constructor_test() { rc = 0; }
int main() { return rc; }
EOF

И опубликовать здесь, если у вас есть какие-либо ошибки.

0 голосов
/ 29 января 2020

Есть идеи, что пошло не так?

Вы можете посмотреть соответствующий файл config.log, который обычно содержит дополнительную информацию. В общем, не каждая ошибка компиляции во время configue указывает на проблему, обычно это просто проверка функции, которая только что показала, что конкретная c функция недоступна.

...