如何修复 OMNeT++ 上的 'cannot find -lgmp' 构建错误?

How to fix 'cannot find -lgmp' build error on OMNeT++?

我已经意识到 OverSim 可以与较新版本的 OMNeT++ 一起使用。我按照 InstallGuide 中的说明在 Windows 10 上安装了 OMNeT++ 5.6.1。然后,我在 OMNeT++ 中导入 INET 3.6.5 并构建它,没有错误。最后,我导入了 OverSim-20190424,当我构建它时,在构建过程结束时出现以下错误:

make[1]: Entering directory '/c/omnet561/oversim-20190424/src'
Creating executable: ../out/gcc-debug/src/OverSim_dbg.exe
C:/omnet561/omnetpp-5.6.1/tools/win64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lgmp
collect2.exe: error: ld returned 1 exit status
make[1]: *** [Makefile:418: ../out/gcc-debug/src/OverSim_dbg.exe] Error 1
make[1]: Leaving directory '/c/omnet561/oversim-20190424/src'
make: *** [Makefile:11: all] Error 2
"make MODE=debug -j8 all" terminated with exit code 2. Build might be incomplete.

12:15:59 Build Failed. 3 errors, 0 warnings. (took 12s.448ms)

另外两个错误是:

Description Resource    Path    Location    Type
make: *** [Makefile:11: all] Error 2    OverSim         C/C++ Problem
make[1]: *** [Makefile:418: ../out/clang-debug/src/OverSim_dbg.exe] Error 1 OverSim         C/C++ Problem

有谁知道如何修复这个错误?我也尝试在 Windows 7 上使用 OverSim,并尝试使用 OMNeT++ 5.4.1,但仍然会产生相同的错误。

libgmp 库(libgmp-10.dll 和 libgmpxx-4.dll)位于目录 "C:/omnet561/omnetpp-5.6.1/tools/win64/mingw64/bin" 中。我认为这里的问题可能是软件使用了错误的目录来搜索库,但我不确定如何解决这个问题。

尝试使用 Makefrag 添加到 libgmp 库的路径。 转到 OverSim-20190424 Project Properties,选择 OMNeT++ | Makemake | select src | Options | Custom | Makefrag 并写:

    LIBS += -L/c/libraries/libgmp

假定 libgmp 库(*.dll 或 *.a)在 C:\libraries\libgmp

编辑
在文本编辑器中从 oversim-20190424\src\ 打开 Makefrag,然后将 LIBSOMNETPP_LIBS 更改为正确的值:

LIBS += -L/sw/lib  -L/c/omnet561/omnetpp-5.6.1/tools/win64/mingw64/bin
OMNETPP_LIBS += -lgmp  

OMNETPP_LIBS += -lgmp-10   

对于遇到相同问题的任何人,我在 Ubuntu 18.04 上使用 OMNeT++ 5.6.1 和 Oversim 20190424 设法解决了它。当我构建 Oversim 时,出现错误 "Could not find gmp.h",为了解决该错误,我安装了 libgmp3-dev - apt-get install libgmp3-dev。如果有人设法让它在 Windows 10 上运行或知道如何修复它,那么请随时 post。