找不到-lpython3.5 - > Eclipse CPP

时间:2017-11-07 18:29:14

标签: python c++ eclipse

我正在尝试使用eclipse在C ++项目中运行Python命令。

我已经在我的Include路径和Cross G ++ Linker的Library搜索路径中包含了“/usr/include/python3.5”。在Cross G ++ Linker的杂项中,我添加了-lpython3.5。

使用这些配置,我的构建如下: g ++ -L / usr / include / python3.5 / -lpython3.5 -o“CppPyTest”./src/CppPyTest.o

但是,我收到以下错误:

/ usr / bin / ld:找不到-lpython3.5 makefile:45:目标'CppPyTest'的配方失败

如果删除-lpython3.5,我收到错误:

未定义对`Py_Initialize'的引用

我的完整代码是:

#include "Python.h"
#include <iostream>

using namespace std;

int main(int argc, char *argv[]) {     
    Py_Initialize();
    PyRun_SimpleString("from time import time,ctime\n"
                     "print 'Today is',ctime(time())\n");
    Py_Finalize();
    return 0;
}

1 个答案:

答案 0 :(得分:0)

这显示了如何编译和链接代码。 这样就可以从package-manager或anaconda软件包中获得适用于Auguster python的参数。

代码(使Python 3兼容):

#include "Python.h"
#include <iostream>

using namespace std;

int main(int argc, char *argv[]) {     
    Py_Initialize();
    PyRun_SimpleString("from time import time,ctime\n"
                     "print('Today is', ctime(time()))\n");
    Py_Finalize();
    return 0;
}

呼叫(对于Anaconda)

g++ -I/opt/anaconda3/include/python3.7m -L /opt/anaconda3/lib -lpython3.7m CppPyTest.cpp

或(来自程序包管理器的python)

g++ -I/usr/include/python3.6m/ -lpython3.6m CppPyTest.cpp

在文件夹中创建一个可执行文件。

我们可以通过以下方式执行a.out

export LD_LIBRARY_PATH=/opt/anaconda3/lib:$LD_LIBRARY_PATH
./a.out

给出输出:

Today is Tue Jul  7 14:56:31 2020

为帮助您正确调整路径,请参阅以下anaconda文件夹的内容:

$ ls /opt/anaconda3/lib/libpython*
/opt/anaconda3/lib/libpython3.7m.a
/opt/anaconda3/lib/libpython3.7m.nolto.a
/opt/anaconda3/lib/libpython3.7m.so
/opt/anaconda3/lib/libpython3.7m.so.1.0
/opt/anaconda3/lib/libpython3.so


$ ls /opt/anaconda3/include/python3.7m/
Python-ast.h           errcode.h          object.h       pymem.h
Python.h               eval.h             objimpl.h      pyport.h
abstract.h             fileobject.h       odictobject.h  pystate.h
accu.h                 fileutils.h        opcode.h       pystrcmp.h
asdl.h                 floatobject.h      osdefs.h       pystrhex.h
ast.h                  frameobject.h      osmodule.h     pystrtod.h
bitset.h               funcobject.h       parsetok.h     pythonrun.h
bltinmodule.h          genobject.h        patchlevel.h   pythread.h
boolobject.h           graminit.h         pgen.h         pytime.h
bytearrayobject.h      grammar.h          pgenheaders.h  rangeobject.h
bytes_methods.h        greenlet           py_curses.h    setobject.h
bytesobject.h          import.h           pyarena.h      sip.h
cellobject.h           internal           pyatomic.h     sliceobject.h
ceval.h                intrcheck.h        pycapsule.h    structmember.h
classobject.h          iterobject.h       pyconfig.h     structseq.h
code.h                 listobject.h       pyctype.h      symtable.h
codecs.h               longintrepr.h      pydebug.h      sysmodule.h
compile.h              longobject.h       pydtrace.h     token.h
complexobject.h        marshal.h          pyerrors.h     traceback.h
context.h              memoryobject.h     pyexpat.h      tupleobject.h
datetime.h             metagrammar.h      pyfpe.h        typeslots.h
descrobject.h          methodobject.h     pyhash.h       ucnhash.h
dictobject.h           modsupport.h       pylifecycle.h  unicodeobject.h
dtoa.h                 moduleobject.h     pymacconfig.h  warnings.h
dynamic_annotations.h  namespaceobject.h  pymacro.h      weakrefobject.h
enumobject.h           node.h             pymath.h