在 OMNeT++ 中使用 64 位内部函数

Posted

技术标签:

【中文标题】在 OMNeT++ 中使用 64 位内部函数【英文标题】:Using 64-bit intrinsics in OMNeT++ 【发布时间】:2017-03-08 15:15:58 【问题描述】:

我正在使用 OMNeT++ 5.0,我希望能够访问我的 cpu 上的英特尔内在功能。我更喜欢使用 64 位版本而不是 32 位版本。一个例子:

int i = _popcnt64(15);

我一直在阅读几年前(2013 年)的一些帖子,这些帖子表明 OMNeT++ 无论如何都将可执行文件打包成 32 位。我将 OMNeT++ 配置为不使用 clang 并且能够使 _popcnt32() 工作。

我希望有人能够验证 OMNeT++ 是否仍将所有内容打包为 32 位,这就是 64 位内在函数无法工作的原因。但是,如果有人知道允许使用 64 位内部函数的解决方法,我将不胜感激。

【问题讨论】:

【参考方案1】:

macOS 和 Linux 上的 OMNeT++ 5.0 支持 64 位编译。在 Windows 上,OMNeT++ 5.0 带有一个 32 位编译器。另一方面,Windows 上的 OMNeT++ 5.1 与 64 位编译器捆绑在一起(来自 mingw-w64 项目的 gcc)。事实上,OMNeT++ 5.1 及更高版本不再支持 32 位编译。

【讨论】:

使用 5.1 效果很好。另一个快速的问题:你知道 5.1 的最终版本是什么时候吗?还是一个粗略的时间表? 我们仍在等待 Eclipse 4.6.3 版本(3 月 23 日),因为它包含一些针对 CDT(C++ 组件)的重要修复。所以发布将在四月初左右。不过,当前的 RC 版本功能齐全,因此您现在可以开始使用它而不必担心太多。 太棒了。谢谢!

以上是关于在 OMNeT++ 中使用 64 位内部函数的主要内容,如果未能解决你的问题,请参考以下文章

windows 64位 安装mvn提示 不是内部或外部命令

内部分享《JVM函数式编程》

如何在 VS2008 64 位版本中将 __asm jno no_oflow 替换为内部结构?

AVX2 上的 256 位 CRC 计算

JS中的闭包

Fastlane增加内部版本号会抛出格式错误的64位a.b.c.d.e版本号