sách gpt4 ai đã đi

`go build` so với `go build file.go`

In lại Tác giả: IT Prince Thời gian cập nhật: 2023-10-29 01:57:17 36 4
mua khóa gpt4 Nike

Tôi đang gặp khó khăn khi xây dựng một chương trình go đơn giản gọi mã c thông qua cgo. Thiết lập của tôi:

$: tiếng vang $GOPATH
/đi
$: mật khẩu
/đi/src/chính
$: ls
ctest.c ctest.h test.go

test.go chứa: gói main

// #bao gồm "ctest.c"
// #include
nhập khẩu "C"
nhập khẩu "không an toàn"
nhập khẩu "fmt"

hàm main() {
cs := C.ctest(C.CString("hàm c"))
hoãn C.free(unsafe.Pointer(cs))
index := "xin chào từ go: " + C.GoString(cs)
fmt.Println(chỉ mục)
}

ctest.h chứa:

char* kiểm tra (char*);

ctest.c chứa:

#include "ctest.h"

char* ctest (char* đầu vào) {
trả về đầu vào;
};

Khi tôi chạy đi xây dựng thử nghiệm.đi Tôi nhận được một tập tin nhị phân,Bài kiểm tra, Tôi có thể chạy nó và nó in ra những gì mong đợi xin chào từ go: hàm c

Tuy nhiên, khi tôi chạy đi xây dựng Khi nào xảy ra lỗi:

#chủ yếu
/tmp/go-build599750908/main/_obj/ctest.o: Trong hàm `ctest':
./ctest.c:3: nhiều định nghĩa của `ctest'
/tmp/go-build599750908/main/_obj/test.cgo2.o:/go/src/main/ctest.c:3: được định nghĩa đầu tiên tại đây
collect2: lỗi: ld trả về 1 trạng thái thoát

Không có sẵn đi xây dựng thử nghiệm.đi TRONG đi xây dựng Nguyên nhân nào gây ra lỗi này?

1 Câu trả lời

Đọc mã của bạn thật cẩn thận. Đọc thông báo lỗi. Sửa lỗi:

// #bao gồm "ctest.h"

kiểm tra.đi:

gói chính

// #bao gồm "ctest.h"
// #include
nhập khẩu "C"
nhập khẩu "không an toàn"
nhập khẩu "fmt"

hàm main() {
cs := C.ctest(C.CString("hàm c"))
hoãn C.free(unsafe.Pointer(cs))
index := "xin chào từ go: " + C.GoString(cs)
fmt.Println(chỉ mục)
}

ctest.h:

char* kiểm tra (char*);

ctest.c:

#include "ctest.h"

char* ctest (char* đầu vào) {
trả về đầu vào;
};

Đầu ra:

$ rm ./kiểm tra
$ ls
ctest.c ctest.h test.go
$ đi xây dựng
$ ls
ctest.c ctest.h kiểm tra kiểm tra.go
$ ./kiểm tra
xin chào từ go: hàm c
$

Liên quan đến go - `go build` so với `go build file.go`, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/48456009/

36 4 0
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com