为什么 OMNet++ 编译器会收到预编译包的错误?

Why does OMNet++ compiler gets errors for a precompiled package?

我已经将一个名为 SoPlex 的外部包(包含 .cpp.h 文件以及库文件的文件夹)包含到我的 OMNet++ 项目中。我已经在 Code::Blocks IDE 中测试了这个包,除了一些警告之外,它工作正常:warning: explicit conversion operators only available with -std=c++11 or -std=gnu++11

它确实在 Code::Blocks IDE 中起作用。但是当我想在我的 OMNet++ 项目中使用它时,它会为 SoPlex 包提供很多错误,如图所示:

它只针对 SoPlex 的代码而不是我的 OMNet++ 项目代码给出了很多错误。

知道是什么导致了这个问题吗?

我在Code::BlocksIDE中使用MinGW编译SoPlex包。当我在 OMNet++ 中使用 MinGW GCC 而不是 GCC for OMNet++ 作为 current toolchain 时,会出现此错误 fatal error: omnetpp.h: No such file or directory

关于第 3 方库的错误。根据您将库放在 src 文件夹中的位置,至少该目录 必须 添加为包含目录,否则编译器将找不到头文件。

至于 omnetpp.h 的问题:OMNeT++ 有它自己的 makefile 生成器,它会自动添加所需的包含文件夹 (omnetpp_root/include)。通用 MinGW GCC 工具链没有。如果您想避免额外的工作,请始终使用 omnet 工具链来构建您的模型。