IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> ubuntu系统Omnet++配置C++嵌入Python -> 正文阅读

[Python知识库]ubuntu系统Omnet++配置C++嵌入Python

一、环境

  1. Ubuntu系统版本18.04.3
  2. omnet++4.6
  3. jdk1.8
  4. Pydev5.2
  5. python3.6

二、Pydev安装

  1. 版本问题:
    Pydev的安装一定程度上和jdk版本有关,在安装之前最好查看自己的jdk版本,并安装合适的pydev版本。jdk1.7支持pydev4.5.5以下的版本,jdk1.8可以支持5.2.0版本的。其余兼容关系自查。pydev官方版本下载地址 注意:官方给出的地址中点击进去后,他会建议你使用其他镜像,尽量选择镜像地址,这样会快一些
  2. 正式安装:
  • 进入omnet++,在工具栏依次点击Help——>Install New SoftWare,在出现的界面中点击Add,在出现的界面如下填写:
    在这里插入图片描述
    Name可以自取,Location是你需要下载的Pydev的版本,我选的镜像地址,会快一些。
  • 勾选Pydev。加载出以下两项需要一些时间,耐心等待即可。可以将Show only the lastest versions of available software去掉,以免每次出现版本提示。
    在这里插入图片描述
  • 一路Next,直至Finish。可以点击Help——>Installation Details查看是否安装成功。
  1. 环境变量配置:
  • 工具栏Windows——>Preferences——>Interpreters——>Python Interpreters,在上面的框中添加你的python地址
    在这里插入图片描述
  1. 测试:
  • 新建project——>Pydev——>PyDev Project,简单编写print(“Hello World”)的python文件,右键Run As——>Python run——>?
    在这里插入图片描述
  1. 注意:
  • 如果你的jdk版本和pydev版本不兼容,在点击Run as后会出现一个warning,让你更新omnet或者使用低版本的pydev,但是简单但的print不会被影响,仍然可以打印,复杂的包引入可能会有问题,所以最好版本兼容。

三、C++环境测试

  1. C++项目测试
  • 新建C++ project,可以创建Hello World的项目
  1. 错误处理:运行时可能会出现“Launch failed! Binary not found”,原因及处理办法如下:
  • C++是编译型语言,在未设置项目运行自动编译的前提下,需要手动编译一次,再点击运行。在omnet中点击🔨图标编译后,再Run as Local C/C++ Applications。注意:如果你视图里有多个项目,确认点击🔨后是否是编译你需要的项目;此外,建议每次编译前clean一下项目,右键项目clean project即可
  • 其他博客还建议如下设置:project——>Properties——>C/C++ Build——>Settings——>Binary Parsers中勾选Elf parser和GNU Elf Parser,可以勾选上。
  • 如果还是不行,可以试试最后这种方法,我是通过这种方法成功的,当然前提是上述两点也做了。
    (1)将待运行的C++项目先编译
    (2)选中Project——>Run as——>Run Configurations——>双击C/C++ Applications会创建一个项,如下:
    在这里插入图片描述
    将Enable auto build勾选上,在Common中勾选上Debug和Run,点击Apply后运行,就可以得到正确输出。
    在这里插入图片描述

四、C++嵌入Python环境配置

  1. 新建一个C++项目,右键项目——>Propertise——>C/C++ General——>Paths and Symbols,添加Python头文件
    在这里插入图片描述

  2. 添加库文件。右键项目——>Propertise——>C/C++ Build——>Settings
    在这里插入图片描述
    注意:这里上面的-l里,如果没有加入python3.6在之后的编译,会出现makefile:recipe for target xxx failed

  3. 测试

  • 编写c++文件如下:
#include <Python.h>//前面所做的一切配置都是为了调用这个头文件和相关库
#include <iostream>
using namespace std;
int main() {
    Py_Initialize();//使用python之前,要调用Py_Initialize();这个函数进行初始化
    PyObject* pModule = NULL;
    PyObject* pFunc = NULL;
    PyRun_SimpleString("import sys");
    PyRun_SimpleString("sys.path.append('/home/ccj/omnetpp-4.6/myproject/testpythonandc++/src/')");
    pModule = PyImport_ImportModule("helloworld");//这里是要调用的python文件名
    if (!pModule) {
        cout << "import python module test failed." << endl;
        return 0;
    }
    pFunc = PyObject_GetAttrString(pModule, "printHello");//这里是要调用的python函数名
    if (!pFunc) {
        cout << "import python func failed." << endl;
        return 0;
    }
    PyEval_CallObject(pFunc, NULL);//调用函数
    Py_Finalize();//调用Py_Finalize,这个根Py_Initialize相对应的。
    return 0;
}

这里的PyRun_SimpleString("sys.path.append('/home/ccj/omnetpp-4.6/myproject/testpythonandc++/src/')");在很多地方直接是append的 ./ ,但是在我这里不行,不能用相对路径,所以用的绝对路径,是py文件与c++文件都在的那一级目录。

  • py文件
def printHello():
	print("Hello World!!!!!Python!!!!!!!!!!")
  • 运行前仍然需要先编译,如果出现Launch Failed错误,就按照第三节的办法处理
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-09 16:14:15  更:2021-10-09 16:15:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:22:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码