新聞中心
動(dòng)態(tài)庫編譯
1.安裝并配置交叉編譯工具鏈
網(wǎng)上有詳細(xì)教程
創(chuàng)新互聯(lián)服務(wù)緊隨時(shí)代發(fā)展步伐,進(jìn)行技術(shù)革新和技術(shù)進(jìn)步,經(jīng)過十年的發(fā)展和積累,已經(jīng)匯集了一批資深網(wǎng)站策劃師、設(shè)計(jì)師、專業(yè)的網(wǎng)站實(shí)施團(tuán)隊(duì)以及高素質(zhì)售后服務(wù)人員,并且完全形成了一套成熟的業(yè)務(wù)流程,能夠完全依照客戶要求對(duì)網(wǎng)站進(jìn)行網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、建設(shè)、維護(hù)、更新和改版,實(shí)現(xiàn)客戶網(wǎng)站對(duì)外宣傳展示的首要目的,并為客戶企業(yè)品牌互聯(lián)網(wǎng)化提供全面的解決方案。
2.go env環(huán)境配置
go env -w CGO_ENABLED=1
go env -w GOOS=linux
go env -w GOARCH=arm
go env -w CC=...-gcc
go env -w CXX=...-gcc
CC和CXX配置成自己的編譯工具的gcc和g++
也可以不配置,在go build前作為參數(shù)即可,例如:
CGO_ENABLED=1 GOOS=linux GOARCH=arm CC=/.../arm-linux-gnueabihf-gcc CXX=/.../arm-linux-gnueabihf-g++ go build -o test test.go;*
3.將.c編譯成共享庫.so
/.../arm-linux-gnueabihf-gcc -c -fPIC -o mylib.o myc.c;/.../arm-linux-gnueabihf-gcc -shared -o lib485.so mylib.o;rm mylib.o
GO程序調(diào)用
package test
/*
#cgo CFLAGS: -I/... //此路徑為c頭文件所在路徑
#cgo LDFLAGS: -L/.../lib -lmyc //此路徑需加入到/etc/ld.so.conf文件末尾
#include "myc.h"
*/
import "C"
注意:
1、所處位置一定要是文件開頭package下面,注釋和impo "C"中間不可空行
2、適用運(yùn)行環(huán)境是arm架構(gòu)的硬件平臺(tái),編譯成可執(zhí)行程序之后需要把依賴的動(dòng)態(tài)庫燒進(jìn)arm板子文件系統(tǒng)中/lib下
當(dāng)前標(biāo)題:【CGO】C源碼編譯為動(dòng)態(tài)庫供go程序調(diào)用(linux環(huán)境、arm架構(gòu)運(yùn)行平臺(tái))
本文鏈接:http://fisionsoft.com.cn/article/dsoispc.html