Ich bin neu in golang, und ich versuche, ein golang Programm zu bauen, die eine statische lib verwendet (.a-Datei)Wie einen relativen Pfad für LDFLAGS in golang verwenden
der Verzeichnis-Struktur für mein Projekt, wie unten
└─testserver
├─bin
├─pkg
└─src
├─logging
└─testserver
├─libtest.a
└─test.go
die Fahnen für CGO in test.go wie unten
// #cgo LDFLAGS: -L /home/test/testserver/src/testserver -ltest
// #include "test.h"
import "C"
, wenn ich für LDFLAGS -L absoluten Pfad verwenden, funktioniert es Strafen, aber wenn ich den Pfad zu einem relativen Pfad zu ändern, zB
// #cgo LDFLAGS: -L ./testserver -ltest
und führen Sie dann den Befehl
go install testserver
es einen Fehler zu mir zurückkommt, und sagt: „nicht finden können, -ltest“
meine Frage ist, wie kann ich einen relativen Pfad in LDFLAGS verwenden ? , damit ich das Projekt auf jedem Pfad erstellen kann. Vielen Dank!
Got it!, Vielen Dank für Ihre Erklärung! –
Ab go1.5.4 funktioniert '#cgo LDFLAGS: -L $ {SRCDIR}/testserver -ltest' in Ordnung. – akavel