亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

致命錯誤:使用 LTO 版本 6.0 而不是預期的 7.1 生成的文件“...”中的字節碼流

致命錯誤:使用 LTO 版本 6.0 而不是預期的 7.1 生成的文件“...”中的字節碼流

慕容森 2023-10-06 16:42:32
我正在嘗試將一個簡單的(測試)Python 腳本嵌入到 C++ 中。請參閱此問題以供參考:Undefined reference to `main` error when embedding Python in C++我正在嘗試在 C++ 中嵌入 Python。這是我的 Python 文件(名稱為 EmbedTest.py):from __future__ import divisionclass model:      def init(self,a,b):          self.a = a          self.b = b           def test_method(a,b):      m = model(a,b)      m.add(1)      print("a: ",a,"b: ",b)      return (a+b,a-b,a*b)這是我的 C++ 文件(名稱為 EmbedTest.cpp,與 EmbedTest.py 位于同一文件夾中)#include <Python.h>  int main(int argc, char *argv[]) {      PyObject *pName, *pModule, *pFunc;      PyObject *pArgs, *pValue, *pValue_1, *pValue_2;      double sum,diff,prod;      double a = atof(argv[1]);      double b = atof(argv[2]);       Py_Initialize();      pName = PyUnicode_DecodeFSDefault("EmbedTest.py");      pModule = PyImport_Import(pName);      Py_DECREF(pName);      if(pModule != NULL) {      pFunc = PyObject_GetAttrString(pModule,"test_method");          if(pFunc && PyCallable_Check(pFunc)) {            pArgs = PyTuple_New(2);            pValue_1 = PyFloat_FromDouble(a);            pValue_2 = PyFloat_FromDouble(b);            if (!pValue_1) {          Py_DECREF(pArgs);            Py_DECREF(pModule);        fprintf(stderr, "Cannot convert argument\n");        return 1;          }          if (!pValue_2) {        Py_DECREF(pArgs);        Py_DECREF(pModule);        fprintf(stderr, "Cannot convert argument\n");        return 1;          }          PyTuple_SetItem(pArgs, 0, pValue_1);          PyTuple_SetItem(pArgs, 1, pValue_2);                  pValue = PyObject_CallObject(pFunc, pArgs);              Py_DECREF(pArgs);              if (pValue != NULL) {            sum = PyFloat_AsDouble(PyTuple_GetItem(pValue,0));            diff = PyFloat_AsDouble(PyTuple_GetItem(pValue,1));            prod = PyFloat_AsDouble(PyTuple_GetItem(pValue,2));                printf("a: %f b: %f sum: %f diff: %f prod: %f",a,b,sum,diff,prod);                Py_DECREF(pValue);              }  
查看完整描述

2 回答

?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

關閉LTO即可-fno-lto解決。



查看完整回答
反對 回復 2023-10-06
?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

當我在CMakeList.txt中誤導 PYTHON_INCLUDE_DIR 和 PYTHON_LIBRARIES 時,我遇到了同樣的問題。當我刪除手動位置指定后,問題就解決了。



查看完整回答
反對 回復 2023-10-06
  • 2 回答
  • 0 關注
  • 200 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號