Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用cmake和其他库的Swig 我正在研究一个项目,我想在Python中使用C++库。经过一点研究,我发现Swig将是一个很好的方法(一个小例子有效)_C++_Python_Cmake_Swig - Fatal编程技术网

使用cmake和其他库的Swig 我正在研究一个项目,我想在Python中使用C++库。经过一点研究,我发现Swig将是一个很好的方法(一个小例子有效)

使用cmake和其他库的Swig 我正在研究一个项目,我想在Python中使用C++库。经过一点研究,我发现Swig将是一个很好的方法(一个小例子有效),c++,python,cmake,swig,C++,Python,Cmake,Swig,所以现在我正试图将Swig加入到cmake中,以使事情变得更舒适 就我而言,我有一个非常小的程序来测试东西: #include "ct.h" using namespace std; int main(int argc, char const *argv[]) { /* code */ return 0; } int test() { Image image(10,11); cout << "hallo"<< endl; re

所以现在我正试图将Swig加入到cmake中,以使事情变得更舒适

就我而言,我有一个非常小的程序来测试东西:

#include "ct.h"
using namespace std;

int main(int argc, char const *argv[])
{
    /* code */
    return 0;
}

int test()
{
    Image image(10,11);
    cout << "hallo"<< endl;

    return 3;
}
我希望,所有这些都不会让人困惑,如果有人知道我做错了什么,我会非常感激


编辑:相关的cmake文件看起来像是Python需要能够在运行时找到图像库。最简单的方法是将LD_LIBRARY_PATH环境变量设置为包含未定义符号的image.so文件的文件夹


如果您运行命令“ldd\u kissCT.so”,它应该会显示它所依赖的库。

实际上,由于未解析的符号已被C++损坏,这表明缺少以下链接器选项:

-lstdc++

非常感谢你的回答。我在.bashrc文件中设置了LD_LIBRARY_PATH变量,并尝试再次运行它。不幸的是,我也犯了同样的错误。另外,令人惊讶的是,ldd没有列出缺少定义的库。您需要链接_kissCT。因此,当您构建图像库时,这就是我之前描述的问题(请阅读上文)。如何在cmake中执行此操作?可能将图像库添加到SWIG_LINK_库中?恐怕我对cmake不太熟悉。是的,这正是我所缺少的。我将丢失的库添加到SWIG_LINK_库中,它成功了。非常感谢你。
/* kissCT test module */

%module kissCT
%{
#import "ct.h"
extern int test();
%}
extern int test();
-lstdc++