Sto cercando di costruire (andare build) il seguente:Perché viene visualizzato il "simbolo di riferimento duplicato" quando si includono due librerie basate su cgo?
package main
import (
"fmt"
_ "github.com/d2g/unqlitego"
_ "github.com/mattn/go-sqlite3"
)
func main() {
fmt.Println("Erm Compile?")
}
ed ottengo un errore:
duplicate symbol reference: __moddi3 in both github.com/d2g/unqlitego(.text) and github.com/mattn/go-sqlite3(.text)
Sono in esecuzione Un Windows versione go1.3.1/386.
Sto facendo qualcosa di sbagliato? Come risolveresti questo tipo di problema?
Questo bug di OS/Go Versione/Architettura è specifico? (Apprezzerei "funziona per me" con l'output dal tuo go version
)
Ho messo tutto in un pronti contro termine quindi dovresti essere in grado di solo go get github.com/d2g/issue-duplicate_symbol
.
Come per i commenti si presenta come un problema di Windows 386 connesso: https://code.google.com/p/go/issues/detail?id=8702
Darn: go versione go1.3.1 windows/amd64, ma non ho 'gcc' sul mio'% PATH% '. È possibile che 'sqlite3.dll' da qualche altra parte sul disco, che potrebbe interferire in questa compilation? – VonC
Se commento una delle due librerie viene compilata. Il che suggerisce che abbia a che fare con il modo in cui interagiscono al momento della compilazione? – DanG
Strano, perché Go di solito fa magia per mantenere i nomi dei simboli C in conflitto purché siano avvolti da pacchetti separati. – LinearZoetrope