Как скрипт «configure» определяет, поддерживает ли моя система некоторые заголовочные файлы или функцию cpp? - PullRequest
0 голосов
/ 12 сентября 2018

Я пытаюсь скомпилировать Google RPC (GRPC) на моем поле RHEL 5, скрипт конфигурации проверяет и выдает эту ошибку:

configure: error: sched_yield was not found on your system

Я проверил файл config.log и нашел что-то вроде этого:

| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char sched_yield ();
| int
| main ()
| {
| return sched_yield ();
|   ;
|   return 0;
| }
configure:19729: result: no
configure:19736: error: in `/downloads/grpc/third_party/protobuf':
configure:19738: error: sched_yield was not found on your system

Ну, это правильно, я сделал ручной тест и не найден.Нет проблем.

But, I just wish to know the principle behind "configure"!

Пытается ли «configure» сгенерировать исходный код на языке c / c ++ и скомпилировать его, чтобы посмотреть, поддерживаются ли некоторые функции?Как вы знаете, скрипт «configure» обычно выполняется очень быстро, гораздо быстрее, чем вызов большого количества процессов gcc / g ++ для проверки заголовков / функций.

Так как же «configure» выполняет эту проверку «заголовка / функции»

1 Ответ

0 голосов
/ 12 сентября 2018

Пытается ли "configure" сгенерировать некоторый исходный код на языке c / c ++ и скомпилировать его, чтобы посмотреть, поддерживаются ли некоторые функции?

Да.

Как вы знаете, скрипт "configure" обычно запускается очень быстро [...]

Не в моем опыте. configure медленно www.www ...

Так как же «настроить» добиться этой «проверки» заголовка / функции?

См. Q # 1.

...