Gogeos安装
环境要求:
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会链接所有的依赖库,导致编译过程耗时较长。
Gogeos安装的更多相关文章
- docker——容器安装tomcat
写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...
- 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法
如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...
- Sublime Text3安装JsHint
介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...
- Fabio 安装和简单使用
Fabio(Go 语言):https://github.com/eBay/fabio Fabio 是一个快速.现代.zero-conf 负载均衡 HTTP(S) 路由器,用于部署 Consul 管理的 ...
- gentoo 安装
加载完光驱后 1进行ping命令查看网络是否通畅 2设置硬盘的标识为GPT(主要用于64位且启动模式为UEFI,还有一个是MBR,主要用于32位且启动模式为bois) parted -a optima ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...
- 【原】nodejs全局安装和本地安装的区别
来微信支付有2年多了,从2年前的互联网模式转变为O2O模式,主要的场景是跟线下的商户去打交道,不像以往的互联网模式,有产品经理提需求,我们帮忙去解决问题. 转型后是这样的,团队成员更多需要去寻找业务的 ...
- tLinux 2.2下安装Mono 4.8
Tlinux2.2发行版基于CentOS 7.2.1511研发而成,内核版本与Tlinux2.0发行版保持完全一致,更加稳定,并保持对Tlinux2.0的完全兼容.Mono 4版本要求CentOS 7 ...
随机推荐
- Zabbix监控基础
1. 安装前准备 setenforce 0 sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config ...
- LeetCode_Two Sum
Given an array of integers, find two numbers such that they add up to a specific target number. The ...
- TIOBE 9 月排行榜:C++ 式微,第 3 名被 Python 拿下
TIOBE 发布了 9 月份的编程语言排行榜,上个月 Python 与第 3 名擦肩而过,而指数稳步上升的它在本月终于打败 C++,成功探花. “人生苦短,我用 Python”,Python 的经 ...
- ruamel.yaml 将字典写入yaml文件
#安装 pip install ruamel.yaml import os from ruamel import yaml # 将字典写入到yaml my_dic = { 'name': '张三', ...
- testng的@Factory及其与@DataProvider的区别
Factory,顾名思意就是工厂,也就是工厂方法,在软件开发中一般结合多态使用,用来根据不同的条件创建不同的类对象. 在这里,Factory一般用来创建一个测试类的多个实例,每个实例属性不同,以执行不 ...
- G729 详细使用文档
https://tools.ietf.org/html/rfc4749 git://git.linphone.org/linphone-android.git http://stackoverflow ...
- PHP面试专用笔记精简版
[PHP笔记] 1.require 遇到即包含文件,require_once 只包含一次.require 遇到错误会终止,一般放在程序的最前面:include遇到错误会继续执行,一般放在流程控制语句中 ...
- Linux登录欢迎图案
命令提示符设置: export PS1='\n\[\e[37;1m[\]\[\e[31;1m\]\u\[\e[39;1m\]@\[\e[33;1m\]\H \[\e[34;1m\]\w\[\e[37; ...
- appium 中手势密码的定位坐标
原文地址http://www.cnblogs.com/smallTestKK/p/5408143.html 1.press方法中的坐标为绝对坐标,moveTO方法中的坐标都是相对坐标,具体来说第一个m ...
- Selenium-Grid2 配置RemoteWebDriver
为什么要使用Selenium Grid ? 分布式运行大规模的Test 能够通过一个中央点,很容易的运行不同OS上的不同browser 最小化对Grid的维护时间,并能充分利用虚拟设备 Seleniu ...