我需要創建一個綁定到現有箱子的(靜態)C庫。 Cargo有什麼方法可以爲我創建這個C庫嗎?有沒有辦法用Cargo創建C庫?
我有一個箱子(例如html5ever),我希望Cargo爲這個箱子創建一個基於C-API的C庫。
我需要創建一個綁定到現有箱子的(靜態)C庫。 Cargo有什麼方法可以爲我創建這個C庫嗎?有沒有辦法用Cargo創建C庫?
我有一個箱子(例如html5ever),我希望Cargo爲這個箱子創建一個基於C-API的C庫。
解決此問題的一種方法是創建一個存儲C API的特殊箱子。例如,如果您的庫被稱爲foo
,那麼在主目錄中有另一個文件夾與src
/tests
並稱爲capi
,這將爲C API存儲特殊的包裝箱foo_capi
。
foo
|
+--src
|
+--test
|
+--capi
|
+--include
|
+--src
|
Cargo.toml
include
文件夾包含頭文件C.
src
包含遠銷到C.
艙單應該靜態鏈接和對項目FOO依賴鏽文件。例如,檢查這個在html5ever中使用的Cargo.toml。
有什麼方法Cargo可以爲我創建這個C庫嗎?
貨物目前沒有此功能。
我有一個箱子(例如html5ever),我希望Cargo爲這個箱子創建一個基於C-API的C庫。
是否有一個原因,它是在C? C可以直接調用Rust代碼,您可以使用html5ever
(因爲它存在)。
現在的問題在於,html5ever上的人正在試圖做的就是讓它由Rust創建C-API,這樣他們就可以擺脫唯一任務所在的Makefile,創建C_API。基本上,移動到貨物,刪除Makefile。 – 2015-04-01 09:21:27
我很驚訝Cargo不允許某種CLI逃生艙口。 – 2015-04-01 09:22:11
呵呵,我不知道他們用的是什麼,我不得不問kmc。 – 2015-04-01 20:29:46
你可以看看[c-code-to-rust-functions中的回調函數](http://doc.rust-lang.org/nightly/book/ffi.html#callbacks-from-c code-to-rust-functions) – pd40 2015-03-31 23:29:53