C++ OMNeT++;模拟器不';如果我将静态库作为链接目标,则不会更新

C++ OMNeT++;模拟器不';如果我将静态库作为链接目标,则不会更新,c++,static,simulator,omnet++,crypto++,C++,Static,Simulator,Omnet++,Crypto++,我是OMNeT++的新手,我正在尝试将Crypto++5.6.5链接到OMNeT++5.1.1。OMNeT++似乎允许我链接Crypto++库的唯一方法是使用Crypto++库的静态版本,如下所述: 右键单击Project->Properties->OMNeT++->Makemake->Option,从“目标”中选择“静态库(.lib或.a)” 从“Compile”中,我选择cryptlib.lib所在的目录(C:\cryptopp565\Win32\DLL\u Output\Debug) 我

我是OMNeT++的新手,我正在尝试将Crypto++5.6.5链接到OMNeT++5.1.1。OMNeT++似乎允许我链接Crypto++库的唯一方法是使用Crypto++库的静态版本,如下所述:

  • 右键单击Project->Properties->OMNeT++->Makemake->Option,从“目标”中选择“静态库(.lib或.a)”
  • 从“Compile”中,我选择cryptlib.lib所在的目录(C:\cryptopp565\Win32\DLL\u Output\Debug)
  • 我从“Link”中选择附加库“cryptlib”。(实际的库文件是“cryptlib.lib”)

我所有的加密错误都消失了(看起来我的加密库被链接了),我可以运行模拟器,但问题是当我运行模拟时,模拟没有从我以前运行模拟器时更新。我知道我看到模拟器运行的是我以前的(旧的)项目版本,在我包含静态库之前,因为我的旧调试输出会播放,即使我使用“EV这里有些混乱。根据附加的图像,您将项目切换为创建静态库。静态库不是可执行的,所以我不确定您实际运行的是什么。在构建过程结束时,您将获得另一个.a文件,但这只是一个库,您可以在将来链接到其他可执行文件

因此(即没有生成可执行文件),您可能正在运行您创建的最后一个可执行文件(在切换到静态库之前)。长话短说:

您必须构建一个可执行文件或至少一个共享库才能运行它。。。静态库不行


至于最初的问题,如果我没看错的话,您正在尝试链接一个32位的crypto++库?因为OMNeT++5.1仅为64位。

关于
C:\cryptopp565\Win32\DLL\u Output\Debug\cryptolib.lib
的一般性评论。您通常希望避免使用FIPS DLL。它通常会导致更多的问题。另请参见Crypto++wiki上的。通常,如果您想要一个Windows DLL,那么您可以使用自己的导出提供该DLL。然后,您的API将Crypto++登记为静态库。谢谢您的帮助!我改成了64位。但是我仍然在挣扎(只有一个静态库似乎在链接),所以我将放弃链接这些Crypto++和OMNeT的想法++