微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

不知道如何从带有后缀“.yy”的源文件构建此列表中应有后缀:['.lm', '.ll']

如何解决不知道如何从带有后缀“.yy”的源文件构建此列表中应有后缀:['.lm', '.ll']

我在使用 scons 从源代码构建包时遇到问题。我收到以下异常。如果我将文件扩展名更改为 ll 或 lm 编译时出现语法错误

scons -j ${JOBS_COUNT:-$(grep -c processor /proc/cpuinfo || echo 1)} --without-dpdk

scons: Reading sconscript files ...
('Ubuntu','20.04','focal')
('Ubuntu','focal')

scons: *** While building `['sandeshy.cc']' from `['/root/salim/src/contrail-common/sandesh/compiler/sandeshy.yy']': Don't kNow how to build from a source file with suffix `.yy'.  Expected a suffix in this list: ['.lm','.ll'].

sconscript 文件

# -*- mode: python; -*-
  
#
# Created by Megh Bhatt on 07/16/12.
# copyright (c) 2012 Contrail Systems. All rights reserved.
#

Import('SandeshEnv')

env = SandeshEnv.Clone();

rmflags = ['-Wsign-compare','-Werror','-fno-exceptions','--coverage']

cflags = env['CCFLAGS']
for flag in rmflags:
    if flag in cflags:
        cflags.remove(flag)

env['CCFLAGS'] = cflags

env.Append(CPPPATH = ['#src/contrail-common/sandesh/compiler','#build/include'])

# Lex and Yacc
env.Append(YACCFLAGS = '-d')
env['YACCHXXFILESUFFIX'] = '.hh'
#env.Append(LEXFLAGS = '-DSANDESH')
env.CXXFile(target = 'sandeshy.cc',source = 'sandeshy.yy')
env.CXXFile(target = 'sandeshl.cc',source = 'sandeshl.ll')

sandesh = env.Program(target = 'sandesh',source = ['main.cc','md5.c','sandeshy.cc','sandeshl.cc','generate/t_cpp_generator.cc','generate/t_html_generator.cc','generate/t_generator.cc','generate/t_xsd_generator.cc','generate/t_c_generator.cc','generate/t_py_generator.cc','generate/t_doc_generator.cc','parse/parse.cc',])
env.Install(env['TOP_BIN'],sandesh)

我正在尝试从来自 github 存储库的 opencontrail 源文件构建包

sandeshy.yy 文件位于 github 存储库中

解决方法

您需要安装 yacc 来修复此错误,scons 可能正在检查它能够处理的内容,因为它无法处理 yacc 文件,因此它不会将 .yy 添加到支持的扩展列表 CXXFile {1}}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。