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

Bagaimanakah Saya Boleh Membina Perpustakaan dan Binari Go dengan Nama Yang Sama?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-29 09:45:11587semak imbas

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

Perpustakaan dan Binari dengan Nama Yang Sama

Cabaran biasa timbul apabila mereka bentuk perpustakaan yang juga boleh berfungsi sebagai binari kendiri. Walaupun nampaknya logik untuk menamakan perpustakaan dan binari secara identik, sistem binaan Golang sering memberikan nama yang berbeza.

Satu penyelesaian melibatkan pengasingan struktur direktori ke dalam direktori tar untuk perpustakaan dan direktori tarbin untuk binari. Walau bagaimanapun, pendekatan ini mencipta binari yang dipanggil tarbin dan bukannya tar.

Penyelesaian yang lebih elegan adalah dengan meletakkan binari dalam direktori perpustakaan:

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

Struktur ini menghasilkan binari bernama tar dan perpustakaan bernama tar.

Dalam konteks GitHub, struktur direktori menjadi:

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

Struktur ini membolehkan pemasangan mudah kedua-dua binari (pergi dapatkan install github.com/you/tar/tar) dan perpustakaan (pergi dapatkan install github.com/you/tar) .

Bergantung pada penonjolan yang diingini, perpustakaan dan binari boleh ditukar dalam struktur direktori. Selain itu, menyimpan semua kod dalam satu pokok membolehkan pembinaan dan ujian yang mudah:

go install ./...
go test|fmt ./...

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membina Perpustakaan dan Binari Go dengan Nama Yang Sama?. 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