在Compling C+中的问题+;方法并调用C++;来自python的方法 简单的C++示例类,我想在一个名为Fo.CPP 的文件中进行讨论 #include <iostream>
最后,我编写了python包装器 从ctypes导入cdll lib=cdll.LoadLibrary('./libfoo.so') <>“我的主要意图是在Eclipse中编译C++代码,并从Linux中的Python调用C++函数”。当我在Linux编译C++代码时,这种方法很好,在Linux中用Python调用C++方法。但是如果我在Eclipse中编译C++代码,并且在Linux中从Python调用C++方法,那就不管用了。p>在Compling C+中的问题+;方法并调用C++;来自python的方法 简单的C++示例类,我想在一个名为Fo.CPP 的文件中进行讨论 #include <iostream>,python,c++,linux,eclipse,shared-objects,Python,C++,Linux,Eclipse,Shared Objects,最后,我编写了python包装器 从ctypes导入cdll lib=cdll.LoadLibrary('./libfoo.so') “我的主要意图是在Eclipse中编译C++代码,并从Linux中的Python调用C++函数”。当我在Linux编译C++代码时,这种方法很好,在Linux中用Python调用C++方法。但是如果我在Eclipse中编译C++代码,并且在Linux中从Python调用C++方法,那就不管用了。p> Error message: symbol not found
Error message:
symbol not found
我是eclipse工具链的新手,但我在中提供了编译器选项和链接选项,如本g++-c-fPIC foo.cpp-o foo.o g++-shared-Wl,-soname,libfoo.so-o libfoo.so foo.o
eclipse编译器选项和链接选项的快照将受到高度赞赏。请帮我整理一下这个问题。提前感谢您需要在Eclipse中创建两个项目
它没有说缺少哪个符号?你在哪一行得到错误?F= FoeWORE()行,或者F.Bar()行?可能有点偏离主题:如果你想从Python调用C++函数,你可以查看SWIG()。当安装正确时,您可以从头文件自动生成Python包装器。您能从上面的问题陈述中解释一下我是如何做到这一点的吗?我想从Eclipse编译C++代码。你能告诉我安装的是哪一个编译器吗?我如何选择它?错误:程序“使”在路径CPPDEV中没有找到,你能帮我解决这个问题吗?你使用的Linux版本是什么?????您需要安装“make”实用程序。如果您有apt-get实用程序,则需要在控制台中输入“apt-get-install-make”。我的编译器版本稍后会告诉你。非常感谢!!我遇到了另一个问题。文件“cppPython.py”,第2行,在lib=cdll.LoadLibrary('libfoo.so')文件/usr/lib64/python2.6/ctypes/__init__.py),第431行,在LoadLibrary返回self中。_dlltype(名称)文件/usr/lib64/python2.6/ctypes/__init__.py,第353行,在init self。请帮我解决这个问题。我将在明天结束前增加50+个。谢谢你advance@Sandy……您需要将对象文件编译为64位且位置独立,然后使用64位选项将对象文件链接到共享库。。。。。。。。。。。。。。。。。。。。。。。g++-c-fPIC-m64 foo.cpp-o foo.o g++-m64-shared-Wl,-soname,libfoo.so-o libfoo.so foo.o
g++ -c -fPIC foo.cpp -o foo.o
g++ -shared -Wl,-soname,libfoo.so -o libfoo.so foo.o
class Foo(object):
def __init__(self):
self.obj = lib.Foo_new()
def bar(self):
lib.Foo_bar(self.obj)
f = Foo()
f.bar() #prints "Hello" on the screen
Error message:
symbol not found