2 回答

TA貢獻1877條經驗 獲得超1個贊
1-這是示例代碼,每次構建時都會自行更改(也因為嵌入__DATE__并且__TIME__每次構建時都會更改):
package main
/*
#include<stdint.h>
#include<string.h>
void getCompileDateTime(uint8_t dt[12],uint8_t tm[9]){
strcpy(dt, __DATE__); //Mmm dd yyyy
strcpy(tm, __TIME__); //hh:mm:ss
}
*/
import "C"
import (
"fmt"
"unsafe"
)
func main() {
dt := make([]byte, 12)
tm := make([]byte, 10)
C.getCompileDateTime((*C.uint8_t)(unsafe.Pointer(&dt[0])), (*C.uint8_t)(unsafe.Pointer(&tm[0])))
dts, tms := string(dt), string(tm)
fmt.Println(dts, tms)
}
2-
一旦使用 cgo,二進制文件將在 DWARF 部分中包含 $WORK 路徑
當前問題:
1. cgo 構建中的 $WORK 路徑泄漏。
2. -cover 和測試中的 $WORK 路徑泄漏。
參考:https : //github.com/golang/go/issues/9206
3- 多次構建純 Go 程序將生成相同的二進制文件。
我希望這有幫助。
- 2 回答
- 0 關注
- 214 瀏覽
添加回答
舉報