我正在尝试用opencv函数构建一个cpp文件。
Go 1.3声明,swig构建现在被捆绑在go build工具中,但是我没有找到一种方法来告诉构建工具添加包含dirs和libs args的pkg-config。
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]有人成功了吗?
发布于 2014-08-27 11:41:28
您可以告诉CGo在Go源文件中使用特定pkg-config库的包含和链接标志,语法如下:
// #cgo pkg-config: some-package
import "C"也就是说,将它与任何其他声明一起包含在cgo处理的注释块中。只需将其包含在包中的一个.go文件中即可。还可以指定其他编译和链接标志:
// #cgo CXXFLAGS: -std=c++11
// #cgo LDFLAGS: -L/some/library/dir -lfoo详细信息可在cgo文档中找到
发布于 2014-08-27 13:03:35
到目前为止,Go并没有正确地传递包含到swig的路径,如果您使用pkg-config,我提交了一个补丁,但是它很可能在1.4发布之前不会包含。
因此,您可以使用补丁构建Go,或者使用#cgo CXXFLAGS / #cgo LDFLAGS手动指定路径,如@JamesHenstridge建议的那样。
https://stackoverflow.com/questions/25522072
复制相似问题