VEINS构建错误:--deep的子目录过多

问题描述

我从git仓库https://github.com/josephkamel/F2MD.git下载了一个框架F2MD,该框架集成了VEINS框架。我正在 Ubuntu 18.04 上使用 Sumo 1.5.0 Omnet ++ 5.6.1 。这个框架有一些子模块。使用以下命令构建子模块之一 veins-f2md 时出现错误

./configure && make -j$(nproc) MODE=release all**

此命令给出错误消息:

Creating Makefile in /home/rukhsar/F2MD-master/F2MD/veins-f2md/src...

/home/rukhsar/Downloads/omnetpp-5.6.1/bin/opp_makemake: error: too many subdirs for --deep
Traceback (most recent call last):
 File "./configure",line 78,in <module>
subprocess.check_call(['env','opp_makemake'] + makemake_flags,cwd='src')
File "/usr/lib/python3.6/subprocess.py",line 311,in check_call
raise CalledProcessError(retcode,cmd)
subprocess.CalledProcessError: Command '['env','opp_makemake','-f','--deep','--no-deep-includes','--make-so','-I','.','-o','veins','-O','out','-p','VEINS']' returned non-zero exit status 1.

以下是发生此错误的opp_makemake文件中编写的代码的一部分:

# collect source files
if ($isDeep) {
    my @allExcludedDirs = ();
    push(@allExcludedDirs,$outDir);
    push(@allExcludedDirs,@exceptSubdirs);
    push(@allExcludedDirs,@submakeDirs);
    @sourceDirs = collectDirs(".",\@allExcludedDirs);
    error("too many subdirs for --deep") if (@sourceDirs > 1000);
} else {
    @sourceDirs = ();
    if (isGoodDir(".",\@exceptSubdirs)) {
        @sourceDirs = (".");
    }
}

我无法理解--deep的目录或文件。我以前没有使用过这些框架和模拟器。请提供解决方案,以便我可以解决此问题并成功构建框架。

解决方法

在构建 f2md 时,“ F2MD / veins-f2md / src ”目录中应该包含一个增强库,其中包含必需的头文件。发生此错误是由于下载的Boost库中的子目录和头文件过多(超过1000个)。因此,我从该库中删除了不需要的头文件和子目录。之后,框架就正确构建了。