研究ethereum原始碼的時候,執行其橢圓曲線簽名演算法提示我錯誤,說是找不到gcc。
然後我就安裝好gcc後才執行成功。我想這是用go原始碼呼叫c**啊,好像是乙個叫cgo的功能來者。好奇心的驅動下,寫了兩個demo感受了一下。
package main
/*#include int sum(int a, int b)
*/import "c"
import "fmt"
func main()
**如上,直接執行即可看到效果。
這裡的import "c"不是把包匯入進來,這裡的c是命名空間的概念。要把c源**用注釋符號注釋起來,並且要緊跟著import "c",中間不能有空行,不然會報錯。空行會報錯這個挺無厘頭的,感覺更像是golang的bug。
#ifndef _foo_h
extern int count;
void foo();
#endif
foo.c
#include #include "foo.h"
int count=2;
void foo()
main.go
package main
//#include "foo.h"
import "c"
import "fmt"
func main()
這裡有點特別,不能直接執行go run main.go,而是要main.go的目錄下執行
go build
就會生成可執行檔案,然後在命令列下執行該可執行檔案即可。
(全文完)
ThreeJs 一 簡單的嘗試
附webgl教程 webgl 自學網 就好比jquery對js進行封裝一樣。等我們有足夠的開發基礎之後,也可以深入去了解底層知識,不過目前這些知識並不是我們學習的重點。threejs是使用js語言編寫的,屬於webgl第三方庫,threejs提供了很多三維顯示的api,而利用這些api我們就能夠建立...
LeetCode初嘗試 簡單
給定乙個整數陣列和乙個目標值,找出陣列中和為目標值的兩個數。你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 7 9 所以返回 0,1 class solution return resul...
簡單嘗試 express 使用 websocket
node 使用 express 框架 先安裝 express 和 express ws yarn add express express ws服務端server.js var express require express var expressws require express ws expre...