“配置”脚本如何检测我的系统是不是支持某些头文件或 cpp 功能?
Posted
技术标签:
【中文标题】“配置”脚本如何检测我的系统是不是支持某些头文件或 cpp 功能?【英文标题】:How does "configure" script detect if my system support some header files or cpp feature?“配置”脚本如何检测我的系统是否支持某些头文件或 cpp 功能? 【发布时间】:2018-09-12 10:38:58 【问题描述】:我正在尝试在我的 RHEL 5 机器上编译 google rpc(grpc),配置脚本检查并抛出此错误:
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"!
“配置”是否会尝试生成一些 c/c++ 源代码并对其进行编译,以查看是否支持某些功能?如您所知,“配置”脚本通常运行得非常快,比调用大量 gcc/g++ 进程来尝试标头/功能要快得多。
那么“configure”是如何实现这个header/feature“check”的呢?
【问题讨论】:
【参考方案1】:“配置”是否会尝试生成一些 c/c++ 源代码并对其进行编译,以查看是否支持某些功能?
是的。
如您所知,“配置”脚本通常运行得非常快 [...]
根据我的经验不是。 configure
很慢www...
那么“configure”是如何实现这个header/feature“check”的呢?
参见问题 #1。
【讨论】:
同意,configure 太慢了,您不想每天都运行它。我只是希望递归项目配置可以重用答案!以上是关于“配置”脚本如何检测我的系统是不是支持某些头文件或 cpp 功能?的主要内容,如果未能解决你的问题,请参考以下文章
PHP 脚本 - 检测是不是在 linux 或 Windows 下运行?
考虑到它的参数,如何检测bash脚本是不是已经在运行[重复]