Я пытаюсь построить (идти строить) следующее:Почему я получаю «дублируемую ссылку на символ» при включении двух библиотек на основе cgo?
package main
import (
"fmt"
_ "github.com/d2g/unqlitego"
_ "github.com/mattn/go-sqlite3"
)
func main() {
fmt.Println("Erm Compile?")
}
и я получаю сообщение об ошибке:
duplicate symbol reference: __moddi3 in both github.com/d2g/unqlitego(.text) and github.com/mattn/go-sqlite3(.text)
Я бегу версия go1.3.1 выбирали и окна/386.
Я что-то не так? Как бы вы решили эту проблему?
Является ли это ошибкой OS/Go версии/архитектуры? (Я буду благодарен за «это работает для меня» с выходом вашего go version
)
Я положил все это на репо, чтобы вы могли просто go get github.com/d2g/issue-duplicate_symbol
.
Согласно комментариям выглядит как проблема Windows, 386 вошли в систему: https://code.google.com/p/go/issues/detail?id=8702
Darn: go version go1.3.1 windows/amd64, но у меня нет 'gcc' на моем'% PATH% '. Возможно, у вас есть 'sqlite3.dll' где-то еще на вашем диске, что может помешать в этой компиляции? – VonC
Если я комментирую любую библиотеку, она компилируется. Что предполагает, что это связано с тем, как они взаимодействуют во время компиляции? – DanG
Странно, потому что Go обычно делает магию, чтобы совместить имена символов C, пока они обернуты отдельными пакетами. – LinearZoetrope