簡體   English   中英

在Emacs上交叉編譯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM