Rumah > pembangunan bahagian belakang > Golang > Bolehkah saya Tetapkan Pembolehubah Pakej dalam Pakej Bukan Utama Go Menggunakan `-ldflags -X`?

Bolehkah saya Tetapkan Pembolehubah Pakej dalam Pakej Bukan Utama Go Menggunakan `-ldflags -X`?

DDD
Lepaskan: 2024-12-22 22:00:17
asal
621 orang telah melayarinya

Can I Set Package Variables in Non-Main Go Packages Using `-ldflags -X`?

Menetapkan Pembolehubah Pakej Menggunakan -ldflags -X dalam Golang Build

Apabila membina aplikasi Go menggunakan arahan go build, pembangun boleh menetapkan pembolehubah pakej menggunakan pilihan -ldflags -X. Teknik ini biasanya digunakan untuk menyuntik rentetan versi, nilai konfigurasi atau metadata lain ke dalam binari yang disusun.

Walau bagaimanapun, persoalan timbul jika boleh menetapkan pembolehubah pakej dalam pakej tertentu, dan bukannya pakej utama. Begini cara ia boleh dicapai:

Dokumentasi untuk bendera -X dengan jelas menyatakan:

-X importpath.name=value
Set the value of the string variable in importpath named name to value.
Salin selepas log masuk

Ini menunjukkan bahawa bendera -X boleh digunakan dengan mana-mana pakej, bukan hanya yang utama pakej. Untuk menentukan pembolehubah pakej, cuma sediakan laluan import penuh (sama seperti cara anda mengimport pakej dalam kod anda).

Contohnya, jika pakej konfigurasi anda terletak di $GOPATH/src/my/package /config, anda boleh menetapkan pembolehubah Versi dalam pakej tersebut menggunakan arahan berikut:

go build -ldflags "-X my/package/config.Version=1.0.0" -o $(MY_BIN) $(MY_SRC)
Salin selepas log masuk

Ini akan menetapkan pembolehubah Versi dalam pakej konfigurasi, walaupun arahan binaan dilaksanakan dalam pakej utama.

Atas ialah kandungan terperinci Bolehkah saya Tetapkan Pembolehubah Pakej dalam Pakej Bukan Utama Go Menggunakan `-ldflags -X`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan