我已经成功C++ 地用SWIG. 我发布了模块undefined reference并且可以安装它,但是当我去构建它时,我发现生成的文件中包含的函数有很多错误c。我把生成的solib文件放在我的系统lib目录下,把库中的头文件放到我的系统include目录下,但这并没有解决问题。我猜我c还需要一个用于包装文件的头文件,以便解释器可以知道文件中的内容so,但鉴于SWIG没有生成头文件,我不知道我是否遗漏了其他任何东西。我将尝试编写自己的头文件以查看是否可以解决错误,但即使可以解决,那不应该是自动执行的操作吗SWIG?我的源文件如下/** file: golibraw.i **/%module librawgo%{#define LIBRAW_LIBRARY_BUILD/* Put headers and other declarations here */#include "libraw/libraw.h"#include "libraw/libraw_alloc.h"#include "libraw/libraw_const.h"#include "libraw/libraw_datastream.h"#include "libraw/libraw_internal.h"#include "libraw/libraw_types.h"#include "libraw/libraw_version.h"%}%include "libraw/libraw.h"%include "libraw/libraw_alloc.h"%include "libraw/libraw_const.h"%include "libraw/libraw_datastream.h"%include "libraw/libraw_internal.h"%include "libraw/libraw_types.h"%include "libraw/libraw_version.h"
1 回答
慕斯709654
TA贡献1840条经验 获得超5个赞
原因是 Go 编译器不知道这个库librawgo.so
。
将以下行放在C
评论的顶部librawgo.go
:
#cgo LDFLAGS: -L<path/to/dir/with/librawgo.so> -lrawgo -lraw
该指令告诉编译器将此行添加到链接器标志。
抱歉,我不知道如何修改您的 CMake 和 SWIG 设置以自动生成此行。
- 1 回答
- 0 关注
- 61 浏览
添加回答
举报
0/150
提交
取消