我學會了方案,很快就掌握了很多,然後在其中完成了一個項目。從字面上看,我花了好幾天才完成。我現在正在嘗試學習通用的lisp來獲得這種感覺,現在我真的非常努力學習asdf。這似乎是常用的知識如何使用它與圖書館,但我很困惑。我想這是因爲大多數lisp程序都是在repl內部生成和運行的,因爲這一切都很好。當我嘗試將它編譯爲一個可執行文件時,我放棄了我的位置。
有沒有人可以給我任何建議或指向我的教程呢?我真的希望能夠製作一個可執行文件給人,而不必解釋如何安裝sbcl和(需要)然後運行它。我只是想學會在lisp方面做一些實質性的工作,我無法做到這一點。
我想我可以使用方案並使用ffi來獲得c庫的工作,但我沒有c的經驗。我只是一個Web開發人員,因爲我自己的個人原因在學習Lisp。當然,學習一些c和ffi可能不會像這個哈哈一樣長。
謝謝與普通的lisp庫努力奮鬥
3
A
回答
7
我真的希望能夠作出 執行,以給人們無需解釋如何安裝SBCL 和(需要),它然後運行它 。
您不需要ASDF來生成「獨立」可執行文件。大多數實現都提供了保存可執行映像的手段,但是如何做到這一點(以及是否提供所有內容)並未在標準中提及。
一般而言,您會將代碼加載到運行映像中,然後「轉儲」該映像。
在SBCL中,例如,您可以使用sb-ext:save-lisp-and-die;覆銅板有ccl:save-application。你將不得不查看你的實現的文檔,以瞭解如何做到這一點。
我沒有SBCL在這裏的時刻,但這個小例子,應該工作(未經測試):
(defun do-it() (format t "hello world~%"))
(sb-ext:save-lisp-and-die "hello" :toplevel #'do-it :executable t)
這是使用CCL工作示例:
Welcome to Clozure Common Lisp Version 1.6-dev-r14287M-trunk (LinuxX8632)!
? (defun do-it() (format t "hello world~%"))
DO-IT
? (ccl:save-application "hello" :toplevel-function #'do-it :prepend-kernel t)
[[email protected] ~/build/ccl]% ./hello
hello world
這些可執行映像可能會有相當大的規模,除非你的實現提供了像樹形搖桿一樣的東西,但我認爲這不應該成爲現在的問題。
您可以在another SO question about this topic找到clisp的詳細示例。
+0
這是否回答你的問題?我不太確定,如果我理解正確,因爲你說,所有東西都可以從REPL中運行。如果您可以在REPL中加載您的庫,我上面描述的是獲取獨立可執行文件的方式,然後您可以將其分發給用戶。如果您希望它們具有普通的REPL,但是您的圖庫已經存在於圖像中,則只需省略:toplevel(-function)關鍵字參數。 – danlei 2010-09-29 01:44:54
0
相關問題
- 1. 與JSplitPane奮鬥
- 2. 與mod_rewrite奮鬥
- 3. 奮鬥與提升:: python
- 4. 與django重組奮鬥
- 5. 與左連接奮鬥
- 6. 新手奮鬥與std :: cin
- 7. 與dataGrid樣式奮鬥WPF
- 8. 奮鬥與動態ndarray
- 9. jQuery AJAX奮鬥
- 10. Android〜ListViewAdapter奮鬥
- 11. OpenGL燈光奮鬥
- 12. AS3新手奮鬥
- 13. Python功能奮鬥
- 14. 與列表和ArrayList的使用奮鬥
- 15. 努力與AJAX
- 16. MySQL與加入/選擇標準奮鬥
- 17. 在JavaScript中與原型/繼承奮鬥
- 18. Linq C#奮鬥與更新代碼
- 19. 與Bussiness Pack警報組件奮鬥
- 20. Clojure新手與協議奮鬥
- 21. 與響應背景圖像奮鬥
- 22. 奮力AWK一通組合
- 23. SML數據類型奮鬥
- 24. 角ui路由器奮鬥
- 25. jquery.load谷歌地圖奮鬥
- 26. 奮鬥到瀏覽Kibana 3
- 27. JPA - 一對多奮鬥
- 28. 常春藤conf奮鬥
- 29. 努力與數據庫設計/關係
- 30. 普通lisp的primep函數
我想幫助你,並寫答覆你的問題上comp.lang.lisp。我的反應不夠快嗎? – Xach 2010-09-28 22:48:03
不,大聲笑。這感覺就像我像一條生命線一樣抱着你,我擔心你可能會變得忙碌,我會佔用你太多的時間。 所以我在這裏發佈,看看是否有其他人可以在這可能不會在comp。lang.lisp。 – Isaiah 2010-09-29 00:53:59