如何修复 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
,然后将 LIBS
和 OMNETPP_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。
我已经意识到 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
,然后将 LIBS
和 OMNETPP_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。