Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Membina Perpustakaan dan Perduaan Kendiri dengan Nama Yang Sama dalam Go?

Bagaimanakah Saya Boleh Membina Perpustakaan dan Perduaan Kendiri dengan Nama Yang Sama dalam Go?

Barbara Streisand
Barbara Streisandasal
2024-11-27 01:25:09399semak imbas

How Can I Build a Library and a Standalone Binary with the Same Name in Go?

Berbilang Perpustakaan dan Perduaan dengan Nama Yang Sama

Soalan ini meneroka kemungkinan mencipta perpustakaan dan binari kendiri dengan nama yang sama. Contoh alat baris perintah Tar dan kefungsian perpustakaannya menunjukkan senario ini.

Pada mulanya, pengguna mencuba struktur direktori berikut:

src/
    tar/
        tar.go # belongs to package tar
        main.go # imports tar and provides a main function

Walau bagaimanapun, ini menghasilkan "perintah " dipanggil tarbin, bukan arahan tar yang diingini.

Untuk menangani perkara ini, pengguna menggunakan penyelesaian menyatakan secara eksplisit nama perduaan keluaran menggunakan go build -o $GOPATH/bin/tar tar.

Penyelesaian yang lebih elegan yang dicadangkan oleh responden ialah menyusun kod seperti berikut:

src/
    tar/
        tar.go         # tar libary
        tar/
            main.go    # tar binary

Menggunakan struktur ini, binari yang terhasil akan dinamakan tar, manakala perpustakaan dinamakan tar.

Jika kod dihoskan pada GitHub, struktur direktori adalah seperti berikut:

src/
    github.com/
        you/
            tar/
                tar.go         # tar libary
                tar/
                    main.go    # tar binary

Organisasi ini memastikan arahan go boleh memasang kedua-dua binari dan perpustakaan apabila digunakan dengan go get install github.com/you/tar/tar.

Kelebihan pendekatan ini ialah ia membolehkan membina dan menguji semua kod dalam projek menggunakan go install ./....

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membina Perpustakaan dan Perduaan Kendiri dengan Nama Yang Sama dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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