gpt4 book ai didi

c++ - 项目中可用的本地头文件,但 make 给出 No such file or directory 错误

转载 作者:搜寻专家 更新时间:2023-10-31 00:54:32 25 4
gpt4 key购买 nike

一整天我都在尝试安装 OverSim [ http://www.oversim.org/wiki/OverSimInstall]生成文件如下所示:

all: checkmakefiles
cd src && $(MAKE)

clean: checkmakefiles
cd src && $(MAKE) clean

cleanall: checkmakefiles
cd src && $(MAKE) MODE=release clean
cd src && $(MAKE) MODE=debug clean
rm -f src/Makefile

makefiles:
cd src && opp_makemake -f --deep --make-so -o inet -O out $$NSC_VERSION_DEF

checkmakefiles:
@if [ ! -f src/Makefile ]; then \
echo; \
echo '======================================================================='; \
echo 'src/Makefile does not exist. Please use "make makefiles" to generate it!'; \
echo '======================================================================='; \
echo; \
exit 1; \
fi

doxy:
doxygen doxy.cfg

tcptut:
cd doc/src/tcp && $(MAKE)

我使用的是 Omnet5.1.1,因为 omnet4.2.2 在 Ubuntu16.04 上不受支持,我的 gcc 版本是 5.4.1。

每次我尝试构建这个 make all 时,它都会给出找不到头文件的错误,而实际上头文件存在于项目目录中。

In file included from applications/ethernet/EtherAppCli.cc:21:0:
applications/ethernet/EtherAppCli.h:21:22: fatal error: INETDefs.h: No such file or directory

包含是这样完成的:

#include "INETDefs.h" //available at src/linklayer/contract/
#include "MACAddress.h" //available at src/base/

项目结构:

enter image description here enter image description here

我该如何解决这个构建错误?

最佳答案

这是较新的 OMNeT++ 版本 5.x 与较旧的 OMNeT++ 版本 3.x 和 4.x 之间的基本区别。

据我所知,Oversim 是为 OMNeT 3.x 和 4.2 以及旧的 INET 版本发布的。这些旧版本使用诸如 --deep 之类的参数来搜索包含文件,这就是为什么包含文件只是命名而没有输入完整路径的原因。

较新的 INET 和 OMNeT 版本对包含文件使用分层路径设置。必须为编译器提供完整路径才能访问包含的文件。

因此对于 INET 3.x 版和 OMNeT++ 5.x 版,包含如下所示:#include "inet/common/INETDefs.h"

Oversim 不包括所包含 header 的完整路径,这就是为什么在较新的 OMNeT 版本中使用 Oversim 时出现错误的原因。

第一个选项是使用较旧的 OMNeT 版本。如果愿意,可以在您的系统上并行安装较旧的 GCC,或者使用较旧的 Ubuntu 设置虚拟机。

第二个(也是更复杂的)选项是采用所有包含路径或通过编译器/链接器的 -I 选项定义所有必要的路径。

坦率地说,我建议使用旧的 OMNeT++ 4.2.2 版本...

关于c++ - 项目中可用的本地头文件,但 make 给出 No such file or directory 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45112694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com