2014-09-11 19 views
9

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

+0

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

+0

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

+0

Strano, perché Go di solito fa magia per mantenere i nomi dei simboli C in conflitto purché siano avvolti da pacchetti separati. – LinearZoetrope

risposta

Problemi correlati