我有一个解决线性编程问题的包,我想在OMNet ++项目中使用SoPlex。该软件包只有一个源文件夹,其中包含.h
和.cpp
个软件包实现文件。我认为我需要从这些源文件和头文件中创建一个库。因此,我使用Code :: Blocks来创建包的动态库。
在OMNet ++中,我去了Project Features
- > Makemake
- > Link
- > Additional librariers to link with
在该路径中,我输入了库soplexlib
的名称。我还在libsoplexlib.a
部分中添加了库文件soplexlib.dll
和Paths and Symbols
的路径。
现在,当我构建项目时,它说它找不到像soplex.h
这样的文件,而soplex包的源文件夹中有这样的文件。我已在项目属性的Includes
部分的Paths and Symbols
子部分中添加了源和头文件的路径。
我在这里错过了什么吗?
答案 0 :(得分:1)
您的OMNeT++
项目可能使用Makefile,因此在IDE中更改Paths and Symbols
无法解决您的问题。
你应该去Project
| Properties
| OMNeT++
| Makemeke
|选择root或src
目录| Options
,然后Custom
| Makefrag
并写下以下几行:
EXTRA_OBJS += -LD:/foo/lib
CFLAGS += -ID:/foo/src
其中D:/foo/lib
是包含libsoplexlib.a
和D:/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
。
答案 1 :(得分:0)
另一种方法是将.cpp文件重命名为.cc并将所有文件复制到源目录中。重新生成makefile(如果您使用的是IDE,那就自动完成了)并且您已经设置好了。 makefile生成器会自动获取源文件夹中的所有.cc文件。