Tcl 无效的命令名";模块/MMac/ALOHA“;错误ns-2 ns-1

Tcl 无效的命令名";模块/MMac/ALOHA“;错误ns-2 ns-1,tcl,ns2,Tcl,Ns2,我对ns-2和ns-MIRACLE非常陌生 我想在ns-2中使用多无线电、多信道模拟。所以,我使用NS-MIRACLE库来实现这一点。但在编译他们的样本时,我犯了一个错误。类似于“无效命令名”模块/MMac/ALOHA“错误” 我正在安装我的控制台 invalid command name "Module/MMac/ALOHA" while executing "Module/MMac/ALOHA create _o17 " invoked from within "catch

我对ns-2和ns-MIRACLE非常陌生

我想在ns-2中使用多无线电、多信道模拟。所以,我使用NS-MIRACLE库来实现这一点。但在编译他们的样本时,我犯了一个错误。类似于“无效命令名”模块/MMac/ALOHA“错误”

我正在安装我的控制台

invalid command name "Module/MMac/ALOHA"
    while executing
"Module/MMac/ALOHA create _o17 "
    invoked from within
"catch "$className create $o $args" msg"
    invoked from within
"if [catch "$className create $o $args" msg] {
if [string match "__FAILED_SHADOW_OBJECT_" $msg] {
delete $o
return ""
}
global errorInfo
error "class $..."
    (procedure "new" line 3)
    invoked from within
"new Module/MMac/ALOHA"
    (procedure "createNode" line 8)
    invoked from within
"createNode 1"
    (file "bpsk_aloha.tcl" line 160)
真正的问题是我的ns miracle找不到“libmmac.so”库。但当我搜索lib文件夹时,它就在那里

couldn't load file "libmmac.so": /home/mazhar/ns/lib/libmmac.so: undefined symbol: CLMSG_PHY2MAC_ENDTX
    while executing
"load libmmac.so"
    (file "bpsk_aloha.tcl" line 54)
所以现在的问题是

未定义符号:CLMSG\U PHY2MAC\U ENDTX


在您更新的问题中,您有一个库,该库尚未针对其所有依赖项进行链接。那就是。。。充其量也难以使用。您应该做的是找出缺少的库,并在链接共享库的步骤中添加这些库。至少,它们将包括符号
CLMSG\u PHY2MAC\u ENDTX
,但可能还有更多。在编译步骤中还要注意意外警告;它们往往表明存在更严重的问题


有关如何在您的平台上构建共享LIB的详细信息,请在此处搜索Stack Overflow。这是一个已经被回答了很多次的问题…

正如它所说,命令
Module/MMac/ALOHA
不存在。我相信代码假设它是一个现有的OTcl类。您在调用
createNode
之前定义了它吗?是的,这就是问题所在。我在谷歌上搜索,但找不到定义MAC协议库的方法。甚至不知道我的代码是否可以访问这些库。谢谢,我已经加载了库。但问题是ns-2无法访问它们。我已经更新了问题。您是如何确切地发现问题是缺少libmmac的?我所定义的自定义协议也面临着类似的问题,控制台错误本身并没有给出任何线索。