TianoCore 已經在 AppPkg 下放置了 Python 2.7.2 的 code。
底下是在 UEFI 下執行 Python 的步驟,這裡我使用的是 UDK2014 和 VS2013。
1. build 出 Python.efi 的執行檔,過程中共會遇到 2 種錯誤。
a. file encoding issue - "Python\PyMod-2.7.2\Python\marshal.c" 只要將這支檔案轉成 Unicode 即可。
b. variables aren't initialized issue - 問題都是出在 structure pointer variable,just assign NULL to it。
2. copy AppPkg\Applications\Python\PyMod-2.7.2\Lib\*.py 到 AppPkg\Applications\Python\Python-2.7.2\Lib。
3. 參考 AppPkg\Applications\Python\PythonReadMe.txt 步驟 4,將相關檔案置於對應的目錄。
4. 執行 Python.efi,如果要回到 UEFI Shell,執行 exit(),便會離開 Python 命令列模式。
2018/5/24 更新
後來 TianoCore 有 2 個 commit 分別解決了 step1 的 issue,有興趣的可以看看
de08c53b0f65f212c25f0eea13d6cdf4bd9c7fb4
1ea946d0f9ea7de963545fbe93cc7f781c03d0b2
有圖有真相。
想请教一下博主,把指标变为NULL具体是什么意思?
回覆刪除我遇到的以下的错误,不知道该怎么修改。
难道是要添加-Wno-unused-value这样的编译选项吗?希望博主能指点一下,多谢
/home/user/Tiano/edk2/AppPkg/Applications/Python/Python-2.7.2/Include/objimpl.h:164:66: error: right-hand operand of comma expression has no effect [-Werror=unused-value]
( Py_TYPE(op) = (typeobj), _Py_NewReference((PyObject *)(op)), (op) )
Hi Shaojie,
回覆刪除當初我在 build 時,有些 .c 檔的變數如果是指標,就會出現 error,比如說 int *v;
我需要手動把它變成 int *v = NULL
至於你這行,我發現我的 .h 跟你一樣
你看要不要參考它的提示,將 -Werror=unused-value 加進 PythonCore.inf
我猜你是用 gcc
我當初是用 visual c++ and UDK-2014
提供給你參考,謝謝