QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 771|回复: 1

请教大虾讲解一下以下程序

[复制链接]
发表于 2005-3-12 09:08:55 | 显示全部楼层 |阅读模式
这是摘录自skyeye中一段代码,在/skyeye-insight/tcl/unix/configure.in中
:
:
    170 #--------------------------------------------------------------------
    171 #       On some systems strstr is broken: it returns a pointer even
    172 #       even if the original string is empty.
    173 #--------------------------------------------------------------------
    174
    175 AC_MSG_CHECKING([proper strstr implementation])
    176 AC_TRY_RUN([
    177 extern int strstr();
    178 int main()
    179 {
    180     exit(strstr("\0test", "test") ? 1 : 0);
    181 }
    182 ], tcl_ok=yes, tcl_ok=no, tcl_ok=no)
    183 if test $tcl_ok = yes; then
    184     AC_MSG_RESULT(yes)
    185 else
    186     AC_MSG_RESULT([broken, using substitute])
    187     LIBOBJS="$LIBOBJS strstr.o"
    188 fi
:
:

可以在shell程序中嵌入C代码(实际上是C程序),这个技术我从来没有用过,请大虾讲解一下如何应用,主要有几个问题:

1: 这段代码中的AC_TRY_RUN如何定义?
2: 如何\告诉系统应该使用哪个编译器进行编译嵌入的代码?
3: AC_TRY_RUN([ --------- ] ----- ) 的语法结构如何?
4: 嵌入的程序出口只有1和0两个结果,后面为什么有三个算式?
5: 能否提供一个完整的可执行的嵌入C代码的shell程序样例?

多谢
发表于 2005-3-12 09:46:00 | 显示全部楼层
this is achieved by autoconf/automake, google their website to have a look at their references
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-6 13:30 , Processed in 0.063929 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表