Windows环境 CMake 配置C++调用Python
  uKQjWIlT8LqG 2023年12月25日 18 0
# CMakeLists.txt
add_library( python3
        STATIC
        IMPORTED )
# 这里是使用python的安装路径
set_target_properties( python3
        PROPERTIES IMPORTED_LOCATION
         "D:/python/libs/python39.lib")
# 使用python的静态库
target_link_libraries(TestDemo python3)
# 添加python的头文件
target_include_directories(TestDemo PUBLIC "D:/python/include")
#main.py
def add(a, b):
    return a + b
//main.cpp
int main(int argc, char *argv[])
{
    Py_Initialize();
    if (!Py_IsInitialized()) {
        qDebug() << "初始化失败";
    }
    qDebug() << "初始化成功!";
    PyRun_SimpleString("import sys");
    PyRun_SimpleString("sys.path.append('./')");


    PyObject* pModule = PyImport_ImportModule("main");

    if (!pModule) {
        qDebug() << "获取pModule模块指针失败";
        return 0;
    }

    PyObject* pFunc = PyObject_GetAttrString(pModule, "add");
    if (!pFunc) {
        qDebug() << "获取函数指针失败";
        return 0;
    }
    PyObject* pPara = PyTuple_New(2);
    PyTuple_SetItem(pPara, 0, Py_BuildValue("i", 100));
    PyTuple_SetItem(pPara, 1, Py_BuildValue("i", 200));

    PyObject *FuncBack = PyObject_CallObject(pFunc, pPara);
    int res = 0;
    PyArg_Parse(FuncBack, "i", &res);
    qDebug() <<"调用python函数的返回值 = " <<res;
    Py_Finalize();
    return 0;
}

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月25日 0

暂无评论

推荐阅读
  oXKBKZoQY2lx   4天前   17   0   0 C++
uKQjWIlT8LqG