首页 > 解决方案 > INET错误:无法加载库“../../src//libINET.dll”:找不到指定的模块

问题描述

我已经做了

1.下载omnetpp-5.5.1-src-windows.zip

2.解压

3.运行mingwenv.cmd

4.配置&制作

5.运行omnetpp

6.勾选“Install INET ...”复选框(默认勾选)

7.进入inet/tutorials/wireless/omnetpp.ini,点击运行

失败的。

总结一下,我什么都没改,只是下载运行inet的教程。

OMNeT++ Discrete Event Simulation  (C) 1992-2019 Andras Varga, OpenSim Ltd. Version: 5.5.1, build: 190613-08ba16f914, edition: Academic Public License -- NOT FOR COMMERCIAL USE See the license for distribution terms and warranty disclaimer


<!> Error: Cannot load library '../../src//libINET.dll': 找不到指定的程序?

End.

Simulation terminated with exit code: 1 Working directory: E:/omnetpp-5.5.1/samples/inet/tutorials/wireless Command line: ../../../../bin/opp_run.exe -m -n ../../src;../../examples;..;../../showcases --image-path=../../images
-l ../../src/INET omnetpp.ini

Environment variables: PATH=;E:/omnetpp-5.5.1/samples/inet/src;E:\omnetpp-5.5.1\bin;E:\omnetpp-5.5.1\tools\win64\mingw64\bin;E:\omnetpp-5.5.1\tools\win64\usr\bin;;E:/omnetpp-5.5.1/ide/jre/bin/server;E:/omnetpp-5.5.1/ide/jre/bin;E:/omnetpp-5.5.1/ide/jre/lib/amd64;.;E:\omnetpp-5.5.1\bin;E:\omnetpp-5.5.1\tools\win64\mingw64\bin;E:\omnetpp-5.5.1\tools\win64\usr\local\bin;E:\omnetpp-5.5.1\tools\win64\usr\bin;E:\omnetpp-5.5.1\tools\win64\usr\bin;C:\Windows\System32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;E:\omnetpp-5.5.1\tools\win64\usr\bin\site_perl;E:\omnetpp-5.5.1\tools\win64\usr\bin\vendor_perl;E:\omnetpp-5.5.1\tools\win64\usr\bin\core_perl;E:\omnetpp-5.5.1; OMNETPP_ROOT=E:/omnetpp-5.5.1/ OMNETPP_IMAGE_PATH=E:\omnetpp-5.5.1\images

运行失败截图

我在命令行中运行它也是相同的错误消息。

在命令行中运行

实际上这不是winpcap的问题,因为我用谷歌搜索了所有关于安装winpcap的答案,但我试过它不起作用。而那些情况是无法建立inet的。

但!!!!在我的情况下,omnetpp 和 inet 都构建成功了!所以实际上我有这个文件(libINET.dll)。所以这一点太奇怪了。

21:04:19 **** Incremental Build of configuration release for project inet ****
make MODE=release -j4 all 
cd src && /usr/bin/make
make[1]: Entering directory '/e/omnetpp-5.5.1/samples/inet/src'
*** COMPILING with:
clang++ -c -std=c++11 -O3 -DNDEBUG=1 -MMD -MP -MF .d    -isystem /usr/include -isystem /mingw64/include -Wno-deprecated-register -Wno-unused-function -fno-stack-protector  -DXMLPARSER=libxml -DPREFER_QTENV -DWITH_QTENV -DWITH_PARSIM -DWITH_NETBUILDER -DWITH_OSG -DWITH_OSGEARTH -DINET_EXPORT -Wno-overloaded-virtual -include inet/common/precompiled_release.h  -DINET_EXPORT -I. -IE:/omnetpp-5.5.1/include
*** LINKING with:
clang++ -shared  -o ../out/clang-release/src/libINET.dll -Wl,--no-as-needed -Wl,--whole-archive  -lws2_32 -Wl,--no-whole-archive -loppenvir -loppsim -lstdc++  -losg -losgText -losgDB -losgGA -losgViewer -losgUtil -lOpenThreads  -losgEarth -losgEarthUtil  -Wl,-rpath,E:/omnetpp-5.5.1/lib -Wl,-rpath,E:/omnetpp-5.5.1/tools/win64/lib -Wl,-rpath,. -L/usr/bin -L/usr/lib -L/mingw64/lib -LE:/omnetpp-5.5.1/lib
Building...
make[1]: Nothing to be done for 'all-pch'.
make[1]: Leaving directory '/e/omnetpp-5.5.1/samples/inet/src'

21:04:22 Build Finished. 0 errors, 0 warnings. (took 3s.519ms)

Windows 资源管理器中的 libINET.dll

libINET.dll 存在

但我可以运行tictok。所以我认为 omnet++ 有效,只有 Inet 无效。

tictok 工作正常

我检查了我的 %PATH% 是正常的。

回显 %PATH%

我正在使用 Windows 7 64 位。实际上,我在虚拟机上新安装的相同版本的 win7 或 win10 中执行了相同的步骤,一切正常。

当然,我尝试重新构建一切,甚至重新下载 omnet++ 包。

而且我还检查了有关我的操作系统的所有内容似乎没有问题,并且我的操作系统中的其他软件都可以正常工作。

那么我能做什么,我现在应该做什么?

谢谢!

标签: omnet++

解决方案


进程监视器截图

最后我通过使用 Process Monitor 分析它加载的 dll 解决了这个问题。左侧不工作,右侧在虚拟机中正常工作。

我发现不同之处在于它加载的最终 DLL 是 libeay32.dll,来自 SYSTEM32,然后崩溃了。在工作的虚拟机中,它从 omnet++ 自己的文件夹加载,并继续加载其他 dll。

所以我发现system32的libeay32.dll版本不对,是其他软件安装的。这是一个 OpenSSL dll 和一个使用 OpenSSL 的软件,它在安装时将旧版本的 OpenSSL 放在 SYSTEM32 中。所以我只是从 SYSTEM32 中删除 libeay32.dll,现在一切正常。


推荐阅读