首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Go +使用外部库的Swig构建

Go +使用外部库的Swig构建
EN

Stack Overflow用户
提问于 2014-08-27 08:13:57
回答 2查看 1.4K关注 0票数 3

我正在尝试用opencv函数构建一个cpp文件。

Go 1.3声明,swig构建现在被捆绑在go build工具中,但是我没有找到一种方法来告诉构建工具添加包含dirs和libs args的pkg-config。

代码语言:javascript
复制
go test -x cv_test.go                                                  
cd /Users/pierre/Projects/go-swig
clang++ -I . -fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common -g -O2 -o $WORK/_/Users/pierre/Projects/go-swig/_obj/binding.cpp.o -c ./binding.cpp
# _/Users/pierre/Projects/go-swig
In file included from ./binding.cpp:1:
./binding.h:5:10: fatal error: 'cv.h' file not found
$WORK/command-line-arguments/_test/tiler.test
FAIL    command-line-arguments [build failed]

有人成功了吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-27 11:41:28

您可以告诉CGo在Go源文件中使用特定pkg-config库的包含和链接标志,语法如下:

代码语言:javascript
复制
// #cgo pkg-config: some-package
import "C"

也就是说,将它与任何其他声明一起包含在cgo处理的注释块中。只需将其包含在包中的一个.go文件中即可。还可以指定其他编译和链接标志:

代码语言:javascript
复制
// #cgo CXXFLAGS: -std=c++11
// #cgo LDFLAGS: -L/some/library/dir -lfoo

详细信息可在cgo文档中找到

票数 4
EN

Stack Overflow用户

发布于 2014-08-27 13:03:35

到目前为止,Go并没有正确地传递包含到swig的路径,如果您使用pkg-config,我提交了一个补丁,但是它很可能在1.4发布之前不会包含。

因此,您可以使用补丁构建Go,或者使用#cgo CXXFLAGS / #cgo LDFLAGS手动指定路径,如@JamesHenstridge建议的那样。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25522072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档