最近在把流媒体服务器做静态链接,但是流媒体服务器里面用到了curl做http请求,然后curl又引用了zlib,ssl库,MMP,做静态链接神烦。
于是想到了用go做一个静态库,然后调用。
go编译静态库
先搞一个实现的文件,代码如下
package main /* 包名必须是main */
import "C"
import (
"io/ioutil"
"net/http"
)
import (
"strings"
)
//export httpGet
func httpGet(url string)int{
resp, err := http.Get(string(url))
if err != nil {
// handle error
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
// handle error
return 0
}
if strings.Contains(string(body), "1") == true {//这个地方是我个人需要的逻辑
return 1
}else {
return 0
}
}
func main() {} /* 必须定义一个空的main函数 */
然后编译为静态库