Runnig OMNeT ++示例时缺少用户界面

时间:2018-12-03 14:04:55

标签: user-interface omnet++

我试图将OMNeT ++ systemc示例之一集成到我们的框架(SoCRocket)中,经过一番努力,我成功构建了其中一个示例,但是当我尝试运行它时,出现以下错误:< / p>

OMNeT++ Discrete Event Simulation  (C) 1992-2018 Andras Varga, OpenSim Ltd.
Version: 5.4.1, build: 180629-5e28390, edition: Academic Public License -- NOT FOR COMMERCIAL USE
See the license for distribution terms and warranty disclaimer


<!> Error: No user interface (Cmdenv, Tkenv, etc.) found

End.

只知道,我禁用了共享库选项,并且我已经在发行模式下构建了OMNeT ++。我在/omnet/lib/中有以下库:

omnet/lib/
├── liboppcmdenv.a
├── liboppcommon.a
├── liboppenvir.a
├── liboppeventlog.a
├── libopplayout.a
├── liboppmain.a
├── liboppnedxml.a
├── liboppqtenv.a
├── liboppqtenv-osg.a
├── liboppscave.a
├── liboppsim.a
└── liboppsystemc.a

缺少什么,有人有主意吗?

编辑

用于在框架中构建代码的脚本:

def build(bld):

    bld(
        target       = 'example1.platform',
        features     = 'cxx cprogram',
        source       = '/forkjoin/forkjoin.cc SC_Wrapper.cc',
        includes     = '.',
        use          = [
                       'oppsystemc','oppmain','oppenvir','oppsim','oppcommon','oppnedxml','oppcmdenv','oppeventlog','opplayout','oppqtenv','oppqtenv-osg','oppscave','xml2','mpi','mpi_cxx','dl'
                       ],
    )

1 个答案:

答案 0 :(得分:1)

链接器可能只是简单地“优化了”用户界面库。

每个用户界面库中都有一些伪函数,分别称为qtenv_libtkenv_libcmdenv_lib,目的是为每个库提供一个“句柄”。

尝试通过“未定义”其中一些符号来添加一些链接器标志,以“强制链接”这些库。应该使用--undefined--require-defined选项之类的方法。出于相同的原因,标准的OMNeT ++构建过程也添加了这些内容。您可能需要在函数名称前添加下划线(_)才能获得符号名称。

编辑:

哦,对于静态库,也许您应该改用--whole-archive