[英]Cross compile on Emacs
我如何在Emacs上創建/發出編譯命令,所以不需要在它與控制台之間來回切換? 我通常希望使用Emacs命令查看編譯過程:
$ export PATH=/toolchain/gcc-linaro-arm-linux-gnueabihf-4.7/bin:$PATH
$ cd my/project
$ make CROSS_COMPILE=arm-linux-gnueabihf- all
我按照說明嘗試制作自己的Mx compile
命令版本,但由於我對Lisp和Emacs的內部知識不夠熟悉而失敗了。 請注意,所涉及的項目很大(即內核),具有多個目錄和Makefile,因此上一個鏈接中描述的方法(最近的Makefile,默認目錄等)不是解決方案。 如果您可以將其綁定到單個鍵(例如現代IDE上的Fx鍵),則可以得到加分。
PS我知道有一個類似的問題 ,但是它已經過時並且不涉及交叉編譯問題,我希望現在有一個更好的解決方案。
Ctrl U Meta x編譯應詢問您要使用的編譯命令。 您可以輸入make CROSS_COMPILE=arm-linux-gnueabi all
否則,可以在~/.emacs
配置compilation-command
Emacs變量。 並且您可以將其設為文件本地變量。
您可以在~/.emacs
放入以下未經測試的行
(load-library "compile")
(global-set-key [f12] 'recompile)
(setq compilation-command "make CROSS_COMPILE=arm-linux-gnueabihf all")
順便說一句,你的export PATH=
...可以添加,例如在你~/.bashrc
,或者你可以有一個shell腳本運行的,准確的make
與適當的PATH
,並讓該腳本是您的Emacs compilation-command
(甚至可能是“暫時”,即僅在您的emacs會話中)
您可以創建一個在特定目錄中運行特定編譯命令的自定義函數,如下所示:
(defun my-compile ()
(interactive)
(let ((default-directory "~/my/project"))
(compile "export PATH=/toolchain/gcc-linaro-arm-linux-gnueabihf-4.7/bin:$PATH && make CROSS_COMPILE=arm-linux-gnueabihf- all")))
然后將其綁定到一些方便的鍵:
(global-set-key [f12] 'my-compile)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.