如何将 类 的集合添加到 OMNet++?

How to add set of classes to OMNet++?

我有一个名为 SoPlex 的解决线性规划问题的包,我想在 OMNet++ 项目中使用它。包只有一个源文件夹,其中包含 .h.cpp 包实现文件。我想我需要用这些源文件和头文件制作一个库。因此,我用Code::Blocks做了一个包的动态库。

在OMNet++中,我去了Project Features --> Makemake --> Link --> Additional librariers to link with

在该路径中,我输入了库的名称soplexlib。我还在 Paths and Symbols 部分添加了库文件 libsoplexlib.asoplexlib.dll 的路径。 现在,当我构建项目时,它说找不到 soplex.h 这样的文件,而 soplex 包的源文件夹中有这样的文件。我在项目属性的 Paths and Symbols 部分的 Includes 小节中添加了该源文件和头文件的路径。

我是不是漏掉了什么?

您的 OMNeT++ 项目可能使用了 Makefile,因此在 IDE 中更改 Paths and Symbols 不会解决您的问题。
你应该去 Project | Properties | OMNeT++ | Makemeke | select 根目录或 src 目录 | Options,然后 Custom | Makefrag 并写入以下行:

EXTRA_OBJS += -LD:/foo/lib
CFLAGS += -ID:/foo/src

其中 D:/foo/lib 是包含 libsoplexlib.aD:/foo/src - soplex.h.
的目录
或者,您可以在 Link 选项中删除以前添加的库,并写入 Makefrag:

EXTRA_OBJS += -LD:/foo/lib -lsoplexlib
CFLAGS += -ID:/foo/src

此外,我建议打开编译器的详细模式。为此,转到 C/C++ Build,取消选中 Use default build command 并在命令末尾写入:V=1.

另一种方法是将 .cpp 文件重命名为 .cc 并将所有文件复制到源目录中。重新生成 makefile(如果您使用的是 IDE,那是自动完成的),您就设置好了。 makefile 生成器会自动选取源文件夹中的所有 .cc 文件。