首页 > 编程知识 正文

nsa文件怎么打开,虚拟机过三方

时间:2023-05-04 07:22:01 阅读:166505 作者:3527

问题说明:

如果您在ns3中创建自己的程序,并在scratch下创建自己的单个文件程序,则waf可以成功编译并运行,但如果您自己创建多个. cc文件,则无法在ns3附带的waf中成功编译。 其理由是,ns3拥有的waf不去寻找依赖,也不知道如何添加依赖。

解决方法:

仿照src下模块的方法,将自己编写的其他非主文件放入一个模块中,用ns3的waf编译时自动编译此模块,达到正确找到头文件和链接的目的。

具体步骤:

进入CDsrc//src源文件夹

编辑用于VIMwscript//ns3的wscript

在all_modules下以该格式添加自己的模块名称,即以后要创建的文件夹的名称。 这里添加了common-work,最后添加了

' ' common-work '

保存并推送文件

mkdir common-work //创建自己的文件夹

cd common-work

mkdir model //类似于其他模块创建的文件夹。 自己的头文件可以放在这里。 cc文件也是

举一个简单的打印函数的例子。 (myzzg.h ) ) ) ) ) )。

#ifndef MYZZG_H

#define MYZZG_H 1

void myprint (;

#endif

在common-work文件夹下直接写入自己的库函数: (myzzg.cc ) ) ) )。

#包含

#include 'model/myzzg.h '

void myprint (

{

std:cout

}

从其他模块将wscript和waf (这可以不修改)文件复制到此文件夹,然后对wscript进行修改。

简单的例子如下(

# #-* -模式: python; py-indent-offset: 4; indent-tabs-mode: nil; 编码: UTF-8; -*-

import os.path

defbuild(bld ) :

# don ' tdoanythingforthismoduleifemu ' snot enabled。

# if not bld.env [ ' enable _ emu ' ] :

# return

module=bld.create _ ns3 _ module (zzg ),['network'] ) )。

module.source=[

' myzzg.cc ',

]

headers=bld.new _ task _ gen (ns3 header ) )。

headers.module='zzg '

headers.source=[

' model/myzzg.h ',

]

bld.ns3_python_bindings (

回到scratch下编写自己的主程序,调用上述库时正确包含头文件即可。

例如以下所示。 (zzg.cc ) )。

#包含

int main () )

{

我的打印(;

返回0;

}

实行

./waf --run zzg

可以看到打印的句子。

分析原理是,在定制的模块中,利用ns3的waf进行编译时,将自己定义的头文件复制到build/debug/ns3/下,对应模块的. cc文件对应. o文件

注:1.模块中的wscript文件中规定了复制模块中的头文件和生成. cc文件。 请参阅上述示例

2 .复制到ns3下的头文件的名称与模型下的相同。 因此,在scratch中使用时,如果无法顺利获取包含的头文件,可以查看编译运行时的输出信息,也可以自己去文件夹下看看是否复制到了那里

3 .目前修改的wscript有点问题。 编译时有点问题,但不影响执行。 例如,在上面的示例中,在ns3下生成zzg-module.h文件,其中包含相应的错误消息。 这个慢慢做吧。 不影响大局。

ns3在自己的模块中使用其他链接库

(1)在本模块的wscript的开头部分添加以下代码。

导入选项

ef conf :

conf.env.append _ value (' link flags ',['-lmysqlclient'] )。

如果您使用自己的链接库而不是-Lmysqlclient,并且需要指定基于链接的位置,请首先添加-l部门。

)2) src模块编译时调用本模块的config

vim src/wscript

在defconfigure[conf]:函数下添加

conf.sub_config(mymodel ) )。

共享至:

2012-02-10 18:33

参照6633

注释

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。