静脉文件找不到其他静脉文件 - 没有这样的文件或目录

Veins file can't find other Veins file - no such file or directory

我想使用 Veins 中的 TraCIMobility.h 来更改一些 SUMO 变量以进行可视化。

我在构建项目时收到错误消息。 TraCIMobility.h找不到BaseMobility.h,也是Veins的一部分。 Veins 项目内部是否存在一些问题?我又构建了一次,但它找不到自己的模块。我使用 Project->Properties->Project References.

将 Veins 添加到我的项目中

这是错误:

10:12:16 **** Incremental Build of configuration gcc-debug for             project CloudBasedCSW ****
make MODE=debug CONFIGNAME=gcc-debug all 
cd src && make
make[1]: Entering directory `/c/work/Cloud_Curve_Speed_Warning/trunk/src/CloudBasedCSW/src'
visualization/Visualization.cc
In file included from ./visualization/Visualization.h:19:0,
             from visualization/Visualization.cc:16:
C:/Tools/veins/src/veins-3.0/src/modules/mobility/traci   /TraCIMobility.h:31:26: fatal error: BaseMobility.h: No such file or directory
make[1]: Leaving directory `/c/work/Cloud_Curve_Speed_Warning/trunk/src/CloudBasedCSW/src'
compilation terminated.
make[1]: *** [../out/gcc-debug/src/visualization/Visualization.o] Error 1
make: *** [all] Error 2
10:12:17 Build Finished (took 726ms)

这是header,其中包括TraCiMobility.h

#ifndef VISUALIZATION_H_
#define VISUALIZATION_H_
#include <omnetpp.h>
#include "modules/mobility/traci/TraCIMobility.h"
class Visualization: public cSimpleModule{
public:
    Visualization();
    virtual ~Visualization();
    void initialize();
    void handleMessage(cMessage *msg);
    void setIce(std::string laneId);
    void removeIce(std::string laneId);
};
#endif /* VISUALIZATION_H_ */

你没有说你使用的是哪个 Veins 版本,所以我假设是最新的 Veins 4a2。在这里,您需要像这样指定包含路径

#include "veins/modules/mobility/traci/TraCIMobility.h"

澄清一下:opp_makemake 的 --meta:auto-include-path 选项将始终生成一个 -I 包含路径,其中包含使包含工作所需的所有缺失组件(即,写为尽管 #include "traci/TraCIMobility.h" 会产生 -I..../veins/src/veins/modules/mobility) 的编译器标志,但如果不添加 -I 包含 Veins 根目录的路径,则 none 包含在工作中。通过指定文件的完整路径(相对于 Veins 的源根目录),您强制 opp_makemake 生成 -I 包含 -I..../veins/src 的路径,这是构建所需的静脉.