0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

windows平臺編譯命令行參數(shù)超過32K報錯規(guī)避辦法

冬至子 ? 來源:還沒想好 ? 作者:還沒想好 ? 2023-08-10 17:04 ? 次閱讀

打開工程目錄下 SConstruct 文件:

在 objs = PrepareBuilding(env, RTT_ROOT) 這一行后面添加如下代碼

prepare building environment

objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False)

set spawn

def ourspawn(sh, escape, cmd, args, e):
filename = str(uuid.uuid4())
newargs = ' '.join(args[1:])
cmdline = cmd + " " + newargs
if (len(cmdline) > 16 * 1024):
f = open(filename, 'w')
f.write(' '.join(args[1:]).replace('', '/'))
f.close()

exec

cmdline = cmd + " @" + filename
proc = subprocess.Popen(cmdline, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=subprocess.PIPE, shell = False, env = e)
data, err = proc.communicate()
rv = proc.wait()
def res_output(_output, _s):
if len(_s):
if isinstance(_s, str):
_output(_s)
elif isinstance(_s, bytes):
_output(str(_s, 'UTF-8'))
else:
_output(str(_s))
res_output(sys.stderr.write, err)
res_output(sys.stdout.write, data)
if os.path.isfile(filename):
os.remove(filename)
return rv
if platform.system() == 'Windows':
env['SPAWN'] = ourspawn

在文件頭部導(dǎo)入相應(yīng)的模塊

import subprocess
import platform
import uuid

將命令行參數(shù)寫入文件中,讓 gcc 工具鏈讀取文件編譯或鏈接。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • WINDOWS
    +關(guān)注

    關(guān)注

    3

    文章

    3521

    瀏覽量

    88318
  • CMD命令
    +關(guān)注

    關(guān)注

    0

    文章

    28

    瀏覽量

    8288
  • gcc編譯器
    +關(guān)注

    關(guān)注

    0

    文章

    78

    瀏覽量

    3346
  • RTThread
    +關(guān)注

    關(guān)注

    7

    文章

    132

    瀏覽量

    40776
收藏 人收藏

    評論

    相關(guān)推薦

    鴻蒙ArkUI-X跨平臺開發(fā):【命令行工具(ACE Tools)】

    ACE Tools是一套為ArkUI-X項目跨平臺應(yīng)用開發(fā)者提供的命令行工具,支持在Windows/Ubuntu/macOS平臺運行,用于構(gòu)建OpenHarmony/HarmonyOS
    的頭像 發(fā)表于 05-21 17:39 ?1563次閱讀
    鴻蒙ArkUI-X跨<b class='flag-5'>平臺</b>開發(fā):【<b class='flag-5'>命令行</b>工具(ACE Tools)】

    ISE的命令行編譯

    幾個同名的空文件進去,結(jié)果是失敗,會有很多bug。請問怎么解決這個問題,即在clearup project files后或者是初次編譯時也能去使用這個命令行文件進行操作?。
    發(fā)表于 07-04 10:02

    cmd網(wǎng)絡(luò)經(jīng)典命令行

    cmd網(wǎng)絡(luò)經(jīng)典命令行:
    發(fā)表于 06-11 15:17 ?36次下載
    cmd網(wǎng)絡(luò)經(jīng)典<b class='flag-5'>命令行</b>

    如何獲取其它程序的命令行參數(shù)

    開發(fā)環(huán)境:VC6 Windows XP 測試環(huán)境:WindowsXP 我們都知道,在程序里獲取命令行參數(shù)很簡單,WinMain函數(shù)會以參數(shù)的形式傳遞給我們,或者可以調(diào)用API Ge
    發(fā)表于 10-14 09:24 ?1次下載

    C語言入門教程-命令行參數(shù)

    命令行參數(shù) 在C中,獲取用戶輸入的命令行參數(shù)是很方便的。程序的主函數(shù)會接受一個argv參數(shù)。有許多高級的庫函數(shù)都會用到argv結(jié)構(gòu),所以了
    發(fā)表于 07-29 14:22 ?2600次閱讀

    caxa命令行中的應(yīng)用

    caxa命令行中的應(yīng)用 命令行對于大多用戶來說往往只是輸入數(shù)據(jù)的作用,但是其中的奧妙還有很多,下面就給大家
    發(fā)表于 10-18 18:18 ?2276次閱讀

    CMD的命令行高級教程

    CMD的命令行高級教程
    發(fā)表于 10-24 08:31 ?30次下載
    CMD的<b class='flag-5'>命令行</b>高級教程

    uvm命令行傳遞參數(shù)的小技巧

    當(dāng)我們在創(chuàng)建動態(tài)仿真case時,使用命令行參數(shù)可以非常方便地控制DUT和TB的行為,比如配置寄存器、控制激勵的發(fā)送數(shù)量、打開或關(guān)閉某些scoreboard等。
    的頭像 發(fā)表于 08-19 11:53 ?5397次閱讀

    K210命令行開發(fā)環(huán)境搭建指南

    K210命令行開發(fā)環(huán)境搭建指南.pdf
    發(fā)表于 11-07 11:58 ?5次下載

    Linux命令行與shell腳本編寫

    Linux命令行與shell腳本編寫
    發(fā)表于 01-11 16:50 ?4次下載

    Fcoder從命令行批量轉(zhuǎn)換為TIFF

    何應(yīng)用程序中,讓您只需一個命令即可自動執(zhí)行重復(fù)的轉(zhuǎn)換任務(wù)。 命令行語法和用法 2TIFF圖像轉(zhuǎn)換器軟件可以從Windows 命令提示符、PowerShell或任何其他
    的頭像 發(fā)表于 05-22 14:13 ?738次閱讀
    Fcoder從<b class='flag-5'>命令行</b>批量轉(zhuǎn)換為TIFF

    STM32通過命令行編譯和下載keil和IAR工程的方法

    STM32通過命令行編譯和下載keil和IAR工程的方法
    的頭像 發(fā)表于 10-31 17:01 ?1455次閱讀
    STM32通過<b class='flag-5'>命令行</b><b class='flag-5'>編譯</b>和下載keil和IAR工程的方法

    linux切換到命令行模式

    在Linux中,可以通過以下步驟切換到命令行模式: 打開終端??梢栽趹?yīng)用菜單中找到終端或命令行終端。 在終端中輸入命令“exit”或“l(fā)ogout”,然后按回車鍵。 系統(tǒng)會提示您輸入管理員密碼。輸入
    的頭像 發(fā)表于 11-13 16:47 ?1692次閱讀

    idea如何輸入命令行參數(shù)

    在許多軟件開發(fā)和系統(tǒng)管理的任務(wù)中,我們經(jīng)常需要向應(yīng)用程序傳遞命令行參數(shù)。命令行參數(shù)是在運行時傳遞給程序的值,用于指定程序的行為和配置選項。本文將詳細介紹如何在不同的編程語言和操作系統(tǒng)中
    的頭像 發(fā)表于 12-06 15:01 ?1032次閱讀

    HarmonyOS開發(fā):【基于命令行(安裝庫和工具集)】

    使用命令行進行設(shè)備開發(fā)時,可以通過以下步驟安裝編譯OpenHarmony需要的庫和工具。
    的頭像 發(fā)表于 04-25 21:03 ?357次閱讀
    HarmonyOS開發(fā):【基于<b class='flag-5'>命令行</b>(安裝庫和工具集)】