使用SWIG包装python的C代码.无法使用cout命令
我正在尝试使用SWIG为python包装这个简单的C代码:
这里是相对标题:
正如我正在使用的SWIG输入文件:
现在,我的makefile(运行正常)是:
因为我能够从不同的来源汇总相关的问题在线.
这是我得到的错误:
这让我觉得这个问题与命令std :: cout相关,或者一般来说,与标准库< iostream>相关. 希望有人可以给我一些关于这个问题的提示.非常感谢提前!! 注意:同样的问题我尝试使用命令printf()而不是std :: cout和库< cstdio>而不是< iostream> 最佳答案
用c filt _ZSt4cout你会发现它是std :: cout(name mangling). 你应该使用g,而不是gcc,尤其是你的链接器命令(带-shared). 或者您需要显式链接某些-lstdc您的共享库. 阅读Drepper的How to Write Shared Libraries(因为Python是dlopen(3),然后是dlsym(3)). 你最好声明为extern“C”int helloW(void);你的日常工作(阅读C++ dlopen minihowto). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |