dpdk编译错 error: RTE_MAX_LCORE undeclared here (not in a function) 解决方法

将windows文件上传到svn服务器后,在linux下编译dpdk遇到问题:

make[1]: execvp:  dpdk-1.7/scripts/relpath.sh: Permission denied
make[1]: execvp:  dpdk-1.7/scripts/relpath.sh: Permission denied
/bin/sh: line 1:  dpdk-1.7/scripts/gen-build-mk.sh: Permission denied
make[1]: *** [ dpdk-1.7/build/Makefile] Error 126
make: *** [config] Error 2
/bin/sh: line 1:  dpdk-1.7/scripts/depdirs-rule.sh: Permission denied
make[7]: *** [depdirs] Error 126
make[6]: *** [depdirs] Error 2
make[5]: *** [depdirs] Error 2
/bin/sh: line 1:  dpdk-1.7/scripts/depdirs-rule.sh: Permission denied

然后我将dpdk目录添加权限

chmod -R +777 ./dpdk1-1.7

再次编译后,错误如下

In file included from  dpdk-1.7/lib/librte_eal/linuxapp/eal/eal.c:61:
 dpdk-1.7/build/include/rte_eal.h:76: error: RTE_MAX_LCORE undeclared here (not in a function)
In file included from  dpdk-1.7/build/include/rte_rwlock.h:54,
                 from  dpdk-1.7/build/include/rte_eal_memconfig.h:41,
                 from  dpdk-1.7/lib/librte_eal/linuxapp/eal/eal.c:62:
 dpdk-1.7/build/include/rte_atomic.h:54:5: error: "RTE_MAX_LCORE" is not defined
In file included from  dpdk-1.7/lib/librte_eal/linuxapp/eal/eal.c:62:
 dpdk-1.7/build/include/rte_eal_memconfig.h:82: error: RTE_MAX_MEMSEG undeclared here (not in a function)
 dpdk-1.7/build/include/rte_eal_memconfig.h:83: error: RTE_MAX_MEMZONE undeclared here (not in a function)
 dpdk-1.7/build/include/rte_eal_memconfig.h:88: error: RTE_MAX_TAILQ undeclared here (not in a function)
 dpdk-1.7/build/include/rte_eal_memconfig.h:91: error: RTE_MAX_NUMA_NODES undeclared here (not in a function)
 dpdk-1.7/lib/librte_eal/linuxapp/eal/eal.c: In function eal_parse_sysfs_value
 dpdk-1.7/lib/librte_eal/linuxapp/eal/eal.c:177: error: RTE_LOG_LEVEL undeclared (first use in this function)
 dpdk-1.7/lib/librte_eal/linuxapp/eal/eal.c:177: error: (Each undeclared identifier is reported only once
 dpdk-1.7/lib/librte_eal/linuxapp/eal/eal.c:177: error: for each function it appears in.)
 dpdk-1.7/lib/librte_eal/linuxapp/eal/eal.c: In function eal_proc_type_detect
 dpdk-1.7/lib/librte_eal/linuxapp/eal/eal.c:285: error: RTE_LOG_LEVEL undeclared (first use in this function)
 dpdk-1.7/lib/librte_eal/linuxapp/eal/eal.c: In function eal_parse_coremask
 dpdk-1.7/lib/librte_eal/linuxapp/eal/eal.c:447: error: RTE_LOG_LEVEL undeclared (first use in this function)
 dpdk-1.7/lib/librte_eal/linuxapp/eal/eal.c: In function eal_parse_socket_mem
 dpdk-1.7/lib/librte_eal/linuxapp/eal/eal.c:520: error: RTE_LOG_LEVEL undeclared (first use in this function)
cc1: warnings being treated as errors
                                                                                                             
dpdk-1.7/lib/librte_eal/linuxapp/eal/eal.c: In function eal_parse_args
 dpdk-1.7/lib/librte_eal/linuxapp/eal/eal.c:721: error: RTE_LOG_LEVEL undeclared (first use in this function)
 dpdk-1.7/lib/librte_eal/linuxapp/eal/eal.c: In function eal_check_mem_on_local_socket
 dpdk-1.7/lib/librte_eal/linuxapp/eal/eal.c:963: error: RTE_LOG_LEVEL undeclared (first use in this function)
 dpdk-1.7/lib/librte_eal/linuxapp/eal/eal.c: In function 鈥榬te_eal_init
 dpdk-1.7/lib/librte_eal/linuxapp/eal/eal.c:1037: error: RTE_LOG_LEVEL undeclared (first use in this function)
make[5]: *** [eal.o] Error 1
make[4]: *** [eal] Error 2
make[3]: *** [linuxapp] Error 2
make[2]: *** [librte_eal] Error 2
make[1]: *** [lib] Error 2
make: *** [all] Error 2

 

解决办法

1.删除dpdk目录中build子目录,然后重新编译即可

2.遇到这个问题,需要使用svn将文件可执行权限添加,否则svn目录再次下载后依然遇到这个问题

执行如下命令

svn propset svn:executable on dpdk-1.7/

发现不让直接添加目录权限

于是我进入出现问题的脚本目录,

cd scripts/
svn propset svn:executable on *
然后执行如下命令,发现文件权限已被更改
svn diff

接下来再次提交回svn服务器即可
 svn ci -m "fix svn:executable for dpdk1.7" dpdk-1.7/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mooyuan天天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值