环境要求:

Windows64,Go,minGW(统一64位)

1、安装geos

下载GEOS 3.3.8源码,解压后,按readme文件编译(基于VS2010的64位编译工具执行的nmake编译命令)在src目录下得到geos_c.dll,将头文件整理为include文件夹:

geos_c.h

geos

export.h

platform.h

version.h

只需要geos里的三个头文件即可

2、安装gogeos

参考http://paulsmith.github.io/gogeos/安装gogeos

执行go get github.com/paulsmith/gogeos/geos命令,下载源码在build过程中会报错:找不到geos_c.h

解决办法:

在GOPATH下的gogeos源码(D:\work\go\src\github.com\paulsmith\gogeos\geos\coordseq.go)中增加cgo配置如下:

/*

#cgo CFLAGS : -ID:/tool/geos/geosbin/include

#cgo LDFLAGS : -LD:/tool/geos/geosbin/bin

#include "geos.h"

*/

import "C"

……

include为前面geos的头文件,bin为geos_c.dll所在目录

然后重新执行go get github.com/paulsmith/gogeos/geos命令,go包安装成功,在GOPATH下的pkg\windows_amd64\github.com\paulsmith\gogeos文件夹中生成geos.a

总结:LDFLAGS设置的是dll动态连接库的位置,不是lib库,之前一直理解错了,windows上要注意64位和32位的坑,保证版本一致

cgo工具提供了c语言包导出到go中使用的功能,但在使用cgo导入c语言包时,注意设置CFLAGS和LDFLAGS参数,cgo会链接所有的依赖库,导致编译过程耗时较长。

最新文章

  1. Stl源码剖析 第三章 iterator摘要
  2. 今个忽然晓得,原来radio不是普通去获取值的!
  3. HDU 5821 Ball (贪心排序) -2016杭电多校联合第8场
  4. css3 切换贞动画的效果,仿gif效果
  5. 【mysql的设计与优化专题(4)】表的垂直拆分和水平拆分
  6. HDU-4628 Pieces 搜索 | DP
  7. 李洪强iOS开发之-PCH文件的配置
  8. Zend Studio 或者Eclipse下安装插件Spket(以Zend为例)
  9. [顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功)
  10. Eclipse JDK的安装
  11. Caffe学习系列(四)之--训练自己的模型
  12. oracle学习笔记(1)-三级模式SCHEMA
  13. 已安装Fedora的U盘无法格式化,要求reinitialize layout
  14. 理解WidowManager
  15. error: Microsoft Visual C++ 14.0 is required.
  16. Delphi在调WebService的时候加Soap头验证
  17. 计算机网络一:OSI七层、TCP/IP五层与TCP/IP四层
  18. C++ dynamic_cast 的使用
  19. python的函数(二)
  20. ns3 myfirst.cc 两个节点点对点通信

热门文章

  1. Apache2.4部署python3.6+django2.0项目
  2. 服务器初识、linux安装、linux初识
  3. [golang note] 内建类型
  4. SCADA 必备函数之 :关于消息的函数
  5. js自动类型转换
  6. 错误:程序“XXX”不包含适合于入口点的静态“Main”方法
  7. Oblect类之hashCode和equals
  8. java 并发——内置锁
  9. Spring-1-F Dice(HDU 5012)解题报告及测试数据
  10. Ubuntu14.04+caffe+cuda7.5 环境搭建以及MNIST数据集的训练与测试