0

我正在尝试安装“flex”。我没有安装以前版本的 flex。我正在运行一个精简版的 linux,所以我没有 apt-get 或 yum。为了安装,我解压了 flex 包(flex-2.5.33.tar.gz)并运行了 ./configure(它可以工作)。但是,然后我运行 make 并失败了。我已经附上了 ./configure 的输出,如果有帮助的话。我应该怎么办?提前致谢。

-缺口

  • 配置

    meshLium-AX:/mnt/sda/flex-2.5.33# ./configure
    检查与 BSD 兼容的安装... /usr/bin/install -c
    检查构建环境是否健全......是的
    检查傻瓜...不
    检查mawk...mawk
    检查 make 是否设置 $(MAKE)... 是
    检查是否请求 NLS... 是
    检查 msgfmt... 否
    检查 gmsgfmt...:
    检查 xgettext... 不
    检查 msgmerge... 否
    检查 make 使用的包含样式... GNU
    检查 gcc ... gcc
    检查 C 编译器默认输出... a.out
    检查 C 编译器是否工作......是的
    检查我们是否在交叉编译...否
    检查可执行文件的后缀...
    检查目标文件的后缀... o
    检查我们是否正在使用 GNU C 编译器...是的
    检查 gcc 是否接受 -g... 是
    检查 gcc 选项以接受 ANSI C... 不需要
    检查 gcc 的依赖样式... gcc3
    检查构建系统类型... i586-pc-linux-gnu
    检查主机系统类型... i586-pc-linux-gnu
    检查 GCC 使用的 ld ... /usr/bin/ld
    检查链接器 (/usr/bin/ld) 是否为 GNU ld... 是
    检查共享库运行路径来源...完成
    检查是否请求 NLS... 是
    检查 libc 中的 GNU gettext ...是的
    检查是否使用 NLS... 是
    检查 gettext 函数的来源... libc
    检查野牛...不
    检查 byacc... 否
    检查弹性...不
    检查 lex... 不
    检查 -lfl 中的 yywrap... 否
    检查 -ll 中的 yywrap ... 否
    检查 gcc...(缓存)gcc
    检查我们是否正在使用 GNU C 编译器...(缓存)是
    检查 gcc 是否接受 -g...(缓存)是
    检查 gcc 选项以接受 ANSI C...(缓存)不需要
    检查 gcc 的依赖样式...(缓存)gcc3
    检查 g++ ...不
    检查 C++... 不
    检查 gpp... 不
    检查 aCC... 否
    检查 CC... 否
    检查 cxx... 否
    检查 cc++... 否
    检查 cl... 否
    检查 FCC... 否
    检查 KCC... 否
    检查 RCC... 否
    检查 xlC_r... 否
    检查 xlC... 不
    检查我们是否正在使用 GNU C++ 编译器...否
    检查 g++ 是否接受 -g... 否
    检查 g++ 的依赖样式...无
    检查 ln -s 是否有效...不,使用 cp -p
    检查ranlib...ranlib
    检查野牛...野牛
    检查 help2man... help2man
    检查 gm4... 否
    检查 gnum4... 不
    检查 m4... /usr/local/bin/m4
    检查 GNU m4... 是的
    检查缩进...缩进
    配置:警告:找不到缩进程序:使缩进目标不起作用
    检查登录 -lm... 是的
    检查如何运行 C 预处理器... gcc -E
    检查 egrep... grep -E
    检查 ANSI C 头文件...是的
    检查 sys/types.h... 是
    检查 sys/stat.h... 是的
    检查stdlib.h ...是的
    检查 string.h... 是的
    检查内存.h ...是的
    检查strings.h ...是的
    检查 inttypes.h ... 是的
    检查stdint.h ...是的
    检查 unistd.h ...是的
    检查 unistd.h...(缓存)是
    检查 stdbool.h 可用性...是的
    检查 stdbool.h 是否存在...是的
    检查 stdbool.h... 是的
    检查 netinet/in.h 的可用性...是的
    检查 netinet/in.h 是否存在...是的
    检查 netinet/in.h... 是的
    检查limits.h可用性...是的
    检查limits.h存在...是的
    检查limits.h ...是的
    检查 sys/wait.h 可用性...是的
    检查 sys/wait.h 是否存在...是的
    检查 sys/wait.h... 是的
    检查 sys/params.h 可用性...否
    检查 sys/params.h 是否存在...否
    检查 sys/params.h... 否
    检查 cuistd 可用性...不
    检查 cuistd 存在...不
    检查cuistd ...不
    检查 locale.h 可用性...是的
    检查 locale.h 存在...是的
    检查 locale.h ...是的
    检查 libintl.h 的可用性...是的
    检查 libintl.h 的存在...是的
    检查 libintl.h... 是的
    检查 regex.h 可用性...是的
    检查 regex.h 的存在...是的
    检查regex.h ...是的
    检查 size_t... 是的
    检查 __func__ 是否被声明...是
    配置:创建 ./config.status
    config.status:创建 flex.spec
    config.status:创建 Makefile
    config.status:创建文档/Makefile
    config.status:创建示例/Makefile
    config.status:创建示例/fastwc/Makefile
    config.status:创建示例/手册/Makefile
    config.status: 创建 m4/Makefile
    config.status:创建 po/Makefile.in
    config.status:创建工具/Makefile
    config.status:创建测试/Makefile
    config.status:创建测试/模板/Makefile
    config.status:创建测试/test-array-nr/Makefile
    config.status:创建测试/test-array-r/Makefile
    config.status:创建测试/test-basic-nr/Makefile
    config.status:创建测试/test-basic-r/Makefile
    config.status: 创建测试/test-bison-yylloc/Makefile
    config.status:创建测试/test-bison-yylval/Makefile
    config.status:创建测试/test-c-cpp-nr/Makefile
    config.status:创建测试/test-c-cpp-r/Makefile
    config.status:创建测试/test-header-nr/Makefile
    config.status: 创建测试/test-header-r/Makefile
    config.status:创建测试/test-include-by-buffer/Makefile
    config.status:创建测试/test-include-by-push/Makefile
    config.status: 创建测试/test-include-by-reentrant/Makefile
    config.status: 创建测试/test-multiple-scanners-nr/Makefile
    config.status: 创建测试/test-multiple-scanners-r/Makefile
    config.status:创建测试/test-noansi-nr/Makefile
    config.status:创建测试/test-noansi-r/Makefile
    config.status:创建测试/test-prefix-nr/Makefile
    config.status: 创建测试/test-prefix-r/Makefile
    config.status:创建测试/test-pthread/Makefile
    config.status:创建测试/test-string-nr/Makefile
    config.status: 创建测试/test-string-r/Makefile
    config.status:创建测试/test-yyextra/Makefile
    config.status:创建测试/test-lineno-nr/Makefile
    config.status: 创建测试/test-lineno-r/Makefile
    config.status: 创建测试/test-linedir-r/Makefile
    config.status:创建测试/test-debug-r/Makefile
    config.status:创建测试/test-debug-nr/Makefile
    config.status:创建测试/test-mem-nr/Makefile
    config.status:创建测试/test-mem-r/Makefile
    config.status:创建测试/test-posix/Makefile
    config.status:创建测试/test-posixly-correct/Makefile
    config.status:创建测试/test-table-opts/Makefile
    config.status: 创建测试/test-c++-basic/Makefile
    config.status:创建测试/test-bison-nr/Makefile
    config.status:创建测试/测试拒绝/Makefile
    config.status: 创建测试/test-c++-multiple-scanners/Makefile
    config.status:创建测试/test-top/Makefile
    config.status:创建测试/test-rescan-nr/Makefile
    config.status:创建测试/test-rescan-r/Makefile
    config.status:创建 config.h
    config.status:执行 default-1 命令
    config.status: 创建 po/POTFILES
    config.status: 创建 po/Makefile
    config.status:执行 depfiles 命令
    
  • 制作

    meshLium-AX:/mnt/sda/flex-2.5.33# make
    光盘。&& /bin/sh /mnt/sda/flex-2.5.33/missing --run aclocal-1.7 -I m4
    /mnt/sda/flex-2.5.33/missing:第 46 行:aclocal-1.7:找不到命令
    警告:您的系统上缺少“aclocal-1.7”。你应该只需要它,如果
         您修改了“acinclude.m4”或“configure.in”。你可能想要
         安装“Automake”和“Perl”软件包。把它们从
         任何 GNU 存档站点。
    光盘。&& \
      /bin/sh /mnt/sda/flex-2.5.33/missing --run automake-1.7 --gnits Makefile
    /mnt/sda/flex-2.5.33/missing:第 46 行:automake-1.7:找不到命令
    警告:您的系统上缺少“automake-1.7”。你应该只需要它,如果
         您修改了“Makefile.am”、“acinclude.m4”或“configure.in”。
         你可能想安装 `Automake' 和 `Perl' 软件包。
         从任何 GNU 存档站点获取它们。
    光盘。&& /bin/sh /mnt/sda/flex-2.5.33/missing --run autoconf
    /bin/sh ./config.status --recheck
    运行 /bin/sh ./configure --no-create --no-recursion
    检查与 BSD 兼容的安装... /usr/bin/install -c
    检查构建环境是否健全......是的
    检查傻瓜...不
    检查mawk...mawk
    检查 make 是否设置 $(MAKE)... 是
    检查是否请求 NLS... 是
    检查 msgfmt... 否
    检查 gmsgfmt...:
    检查 xgettext... 不
    检查 msgmerge... 否
    检查 make 使用的包含样式... GNU
    检查 gcc ... gcc
    检查 C 编译器默认输出文件名... a.out
    检查 C 编译器是否工作......是的
    检查我们是否在交叉编译...否
    检查可执行文件的后缀...
    检查目标文件的后缀... o
    检查我们是否正在使用 GNU C 编译器...是的
    检查 gcc 是否接受 -g... 是
    检查 gcc 选项以接受 ISO C89... 不需要
    检查 gcc 的依赖样式... gcc3
    检查构建系统类型... i586-pc-linux-gnu
    检查主机系统类型... i586-pc-linux-gnu
    检查 GCC 使用的 ld ... /usr/bin/ld
    检查链接器 (/usr/bin/ld) 是否为 GNU ld... 是
    检查共享库运行路径来源...完成
    检查是否请求 NLS... 是
    检查 libc 中的 GNU gettext ...是的
    检查是否使用 NLS... 是
    检查 gettext 函数的来源... libc
    检查野牛...不
    检查 byacc... 否
    检查弹性...不
    检查 lex... 不
    检查 gcc...(缓存)gcc
    检查我们是否正在使用 GNU C 编译器...(缓存)是
    检查 gcc 是否接受 -g...(缓存)是
    检查 gcc 选项以接受 ISO C89...(缓存)不需要
    检查 gcc 的依赖样式...(缓存)gcc3
    检查 g++ ...不
    检查 C++... 不
    检查 gpp... 不
    检查 aCC... 否
    检查 CC... 否
    检查 cxx... 否
    检查 cc++... 否
    检查 cl.exe... 否
    检查 FCC... 否
    检查 KCC... 否
    检查 RCC... 否
    检查 xlC_r... 否
    检查 xlC... 不
    检查我们是否正在使用 GNU C++ 编译器...否
    检查 g++ 是否接受 -g... 否
    检查 g++ 的依赖样式...无
    检查 ln -s 是否有效...不,使用 cp -p
    检查ranlib...ranlib
    检查野牛...野牛
    检查 help2man... help2man
    检查 gm4... 否
    检查 gnum4... 不
    检查 m4... /usr/local/bin/m4
    检查 GNU m4... 是的
    检查缩进...缩进
    配置:警告:找不到缩进程序:使缩进目标不起作用
    检查登录 -lm... 是的
    检查如何运行 C 预处理器... gcc -E
    检查处理长行的 grep 和 -e... /bin/grep
    检查 egrep... /bin/grep -E
    检查 ANSI C 头文件...是的
    检查 sys/types.h... 是
    检查 sys/stat.h... 是的
    检查stdlib.h ...是的
    检查 string.h... 是的
    检查内存.h ...是的
    检查strings.h ...是的
    检查 inttypes.h ... 是的
    检查stdint.h ...是的
    检查 unistd.h ...是的
    检查 unistd.h...(缓存)是
    检查 stdbool.h 可用性...是的
    检查 stdbool.h 是否存在...是的
    检查 stdbool.h... 是的
    检查 netinet/in.h 的可用性...是的
    检查 netinet/in.h 是否存在...是的
    检查 netinet/in.h... 是的
    检查limits.h可用性...是的
    检查limits.h存在...是的
    检查limits.h ...是的
    检查 sys/wait.h 可用性...是的
    检查 sys/wait.h 是否存在...是的
    检查 sys/wait.h... 是的
    检查 sys/params.h 可用性...否
    检查 sys/params.h 是否存在...否
    检查 sys/params.h... 否
    检查 cuistd 可用性...不
    检查 cuistd 存在...不
    检查cuistd ...不
    检查 locale.h 可用性...是的
    检查 locale.h 存在...是的
    检查 locale.h ...是的
    检查 libintl.h 的可用性...是的
    检查 libintl.h 的存在...是的
    检查 libintl.h... 是的
    检查 regex.h 可用性...是的
    检查 regex.h 的存在...是的
    检查regex.h ...是的
    检查 size_t... 是的
    检查 __func__ 是否被声明...是
    配置:创建 ./config.status
    光盘。&& /bin/sh ./config.status Makefile depfiles
    config.status:创建 Makefile
    config.status: WARNING: 'Makefile.in' 似乎忽略了 --datarootdir 设置
    config.status:执行 depfiles 命令
    光盘。&& /bin/sh /mnt/sda/flex-2.5.33/missing --run autoheader
    perl:警告:设置语言环境失败。
    perl:警告:请检查您的语言环境设置:
    语言=(未设置),
    LC_ALL =(未设置),
    LANG = "en_US.UTF-8"
    支持并安装在您的系统上。
    perl:警告:回退到标准语言环境(“C”)。
    perl:警告:设置语言环境失败。
    perl:警告:请检查您的语言环境设置:
    语言=(未设置),
    LC_ALL =(未设置),
    LANG = "en_US.UTF-8"
    支持并安装在您的系统上。
    perl:警告:回退到标准语言环境(“C”)。
    触摸./conf.in
    光盘。&& /bin/sh ./config.status config.h
    config.status:创建 config.h
    使所有递归
    make[1]: 进入目录`/mnt/sda/flex-2.5.33'
    全力以赴。
    make[2]: 进入目录`/mnt/sda/flex-2.5.33'
    如果 gcc -DHAVE_CONFIG_H -I。-我。-我。-DLOCALEDIR=\"/usr/local/share/locale\" -I/usr/local/include -I./intl -g -O2 -MT libmain.o -MD -MP -MF ".deps/libmain.Tpo " \
      -c -o libmain.o `test -f 'libmain.c' || 回声'./'`libmain.c; \
    然后 mv -f ".deps/libmain.Tpo" ".deps/libmain.Po"; \
    否则 rm -f ".deps/libmain.Tpo"; 1号出口;\
    菲
    如果 gcc -DHAVE_CONFIG_H -I。-我。-我。-DLOCALEDIR=\"/usr/local/share/locale\" -I/usr/local/include -I./intl -g -O2 -MT libyywrap.o -MD -MP -MF ".deps/libyywrap.Tpo " \
      -c -o libyywrap.o `test -f 'libyywrap.c' || echo './'`libyywrap.c; \
    然后 mv -f ".deps/libyywrap.Tpo" ".deps/libyywrap.Po"; \
    否则 rm -f ".deps/libyywrap.Tpo"; 1号出口;\
    菲
    rm -f libfl.a
    ar cru libfl.a libmain.o libyywrap.o
    ranlib libfl.a
    如果 gcc -DHAVE_CONFIG_H -I。-我。-我。-DLOCALEDIR=\"/usr/local/share/locale\" -I/usr/local/include -I./intl -g -O2 -MT ccl.o -MD -MP -MF ".deps/ccl.Tpo " \
      -c -o ccl.o `test -f 'ccl.c' || 回声'./'`ccl.c; \
    然后 mv -f ".deps/ccl.Tpo" ".deps/ccl.Po"; \
    否则 rm -f ".deps/ccl.Tpo"; 1号出口;\
    菲
    如果 gcc -DHAVE_CONFIG_H -I。-我。-我。-DLOCALEDIR=\"/usr/local/share/locale\" -I/usr/local/include -I./intl -g -O2 -MT dfa.o -MD -MP -MF ".deps/dfa.Tpo " \
      -c -o dfa.o `test -f 'dfa.c' || 回声'./'`dfa.c; \
    然后 mv -f ".deps/dfa.Tpo" ".deps/dfa.Po"; \
    否则 rm -f ".deps/dfa.Tpo"; 1号出口;\
    菲
    如果 gcc -DHAVE_CONFIG_H -I。-我。-我。-DLOCALEDIR=\"/usr/local/share/locale\" -I/usr/local/include -I./intl -g -O2 -MT ecs.o -MD -MP -MF ".deps/ecs.Tpo " \
      -c -o ecs.o `test -f 'ecs.c' || 回声'./'`ecs.c; \
    然后 mv -f ".deps/ecs.Tpo" ".deps/ecs.Po"; \
    否则 rm -f ".deps/ecs.Tpo"; 1号出口;\
    菲
    如果 gcc -DHAVE_CONFIG_H -I。-我。-我。-DLOCALEDIR=\"/usr/local/share/locale\" -I/usr/local/include -I./intl -g -O2 -MT gen.o -MD -MP -MF ".deps/gen.Tpo " \
      -c -o gen.o `test -f 'gen.c' || 回声'./'`gen.c; \
    然后 mv -f ".deps/gen.Tpo" ".deps/gen.Po"; \
    否则 rm -f ".deps/gen.Tpo"; 1号出口;\
    菲
    如果 gcc -DHAVE_CONFIG_H -I。-我。-我。-DLOCALEDIR=\"/usr/local/share/locale\" -I/usr/local/include -I./intl -g -O2 -MT main.o -MD -MP -MF ".deps/main.Tpo " \
      -c -o main.o `test -f 'main.c' || 回声'./'`main.c; \
    然后 mv -f ".deps/main.Tpo" ".deps/main.Po"; \
    否则 rm -f ".deps/main.Tpo"; 1号出口;\
    菲
    如果 gcc -DHAVE_CONFIG_H -I。-我。-我。-DLOCALEDIR=\"/usr/local/share/locale\" -I/usr/local/include -I./intl -g -O2 -MT misc.o -MD -MP -MF ".deps/misc.Tpo " \
      -c -o misc.o `test -f 'misc.c' || 回声'./'`misc.c; \
    然后 mv -f ".deps/misc.Tpo" ".deps/misc.Po"; \
    否则 rm -f ".deps/misc.Tpo"; 1号出口;\
    菲
    如果 gcc -DHAVE_CONFIG_H -I。-我。-我。-DLOCALEDIR=\"/usr/local/share/locale\" -I/usr/local/include -I./intl -g -O2 -MT nfa.o -MD -MP -MF ".deps/nfa.Tpo " \
      -c -o nfa.o `test -f 'nfa.c' || 回声'./'`nfa.c; \
    然后 mv -f ".deps/nfa.Tpo" ".deps/nfa.Po"; \
    否则 rm -f ".deps/nfa.Tpo"; 1号出口;\
    菲
    如果 gcc -DHAVE_CONFIG_H -I。-我。-我。-DLOCALEDIR=\"/usr/local/share/locale\" -I/usr/local/include -I./intl -g -O2 -MT parse.o -MD -MP -MF ".deps/parse.Tpo " \
      -c -o parse.o `test -f 'parse.c' || 回声'./'`parse.c; \
    然后 mv -f ".deps/parse.Tpo" ".deps/parse.Po"; \
    否则 rm -f ".deps/parse.Tpo"; 1号出口;\
    菲
    /bin/sh /mnt/sda/flex-2.5.33/missing --run flex `test -f scan.l || 回声'./'`scan.l
    /mnt/sda/flex-2.5.33/missing:第 46 行:flex:找不到命令
    警告:您的系统上缺少“flex”。你应该只需要它,如果
         你修改了一个“.l”文件。你可能需要 `Flex' 包
         为了使这些修改生效。你可以得到
         来自任何 GNU 存档站点的“Flex”。
    sed '/^#/ s|\.c|scan.c|' .c >扫描.c
    sed:无法读取 .c:没有这样的文件或目录
    make[2]: *** [scan.c] 错误 2
    make[2]: 离开目录`/mnt/sda/flex-2.5.33'
    make[1]: *** [all-recursive] 错误 1
    make[1]: 离开目录`/mnt/sda/flex-2.5.33'
    make: *** [全部] 错误 2
    
4

4 回答 4

1

我下载了一份 flex-2.5.33。它包含 scan.l 和 scan.c。
-rw-r--r-- 500/500 141838 2006-02-20 20:45 flex-2.5.33/scan.c
-rw-r--r-- 500/500 20853 2006-02-14 13: 28 flex-2.5.33/scan.l

看起来您缺少提供的 scan.c。

从您的 make 输出看来,您的环境中也缺少语言环境文件或设置。

如果您打算在这台机器上使用基于 gnu 的工具进行任何其他开发,您可以考虑安装 autoconf 和 automake。看起来 Makefile 正在强制重新配置,因为这些项目不存在,这可能会导致一些未指定的问题。

最后,您应该考虑拥有一台可以安装完整开发平台的第二台开发机器。这样你就可以在那里编译/测试,看看“正常”输出应该是什么样子。另一种选择是在开发机器上进行构建并将结果安装在“精简”目标上。

于 2009-07-03T03:39:17.137 回答
0

这有点像在黑暗中拍摄,但尝试安装 help2man 看看你是否能走得更远?

(基于http://rainforce.org/flex/flex-2-5-10.notes - 该文件中的思考过程并不完全清楚,所以很难确定,但它可能值得尝试。)

于 2009-06-29T19:15:29.537 回答
0

Make 输出显示它首先尝试重新生成某些文件,这些文件通常不会由只想从源编译的用户重新生成。其中一个文件是 scan.l 中的 scan.c,它需要预先存在的 flex,当然它会失败。

下载的压缩包不应该是这种情况。一种猜测是文件戳是错误的。在新目录中尝试

./configure
touch scan.c
make

如果根本没有scan.c 文件,则说明您下载了错误的压缩包或文件已损坏。

于 2009-07-01T05:40:21.273 回答
0

文件scan.c是源包的一部分,但如果以某种方式被删除,则必须从使用(尚未安装)的scan.l(通过)重建它。make scan.cflex

scan.c所以最简单的解决方案是从flex*.tar.bz2文件中重新提取。

于 2021-05-08T16:16:39.197 回答